GithubHelp home page GithubHelp logo

kikoeru-project / kikoeru-quasar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yodhcn/kikoeru-quasar

26.0 26.0 16.0 1.74 MB

kikoeru 前端

License: GNU General Public License v3.0

JavaScript 12.35% Vue 85.29% HTML 0.75% SCSS 0.67% Dockerfile 0.95%

kikoeru-quasar's People

Contributors

cha0scat avatar mason1900 avatar umonaca avatar yodhcn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kikoeru-quasar's Issues

[BUG] 播放按钮状态并未与实际播放状态关联

togglePlaying 按钮只是单方面维护了自己的状态,并在用户点击播放/暂停按钮时通知 vue-plyr 元素

    playing (flag) {
      if (this.player.duration) {
        // 缓冲至可播放状态
        flag ? this.player.play() : this.player.pause()
      }
      this.playLrc(flag);
    },

这就导致,如果通过其他途径(例如移动设备的控制中心、耳机的线控等)暂停播放,则 togglePlaying 按钮仍然是播放状态

建议修改方案:
播放状态由 vue-plyr 自下而上进行管理,并在 AudioPlayer 内设置监听,用于改变播放按钮当前状态。
通过这种方式,也能实现因加载而暂停的同时暂停字幕播放

[BUG] 播放按钮抖动

#9 引入的问题

设备:移动端 chrome
复现方法:进入音频后,快速多次点击进度条触发 seek

分析:
在部分浏览器上,seek 会触发 onPause 钩子,
缓冲结束后,播放器会强制继续播放(触发 onPlay 钩子)

但是 onPause、onPlay 用来 反映播放器状态 的属性 playing 同时也是 控制播放器播放 的属性

这就导致 playing 内部形成了一个闭环控制

这个问题可以在 华为 P30 Chrome 浏览器上复现。
附一段视频
https://files.catbox.moe/qxnrt7.mp4

解决方案:
分离播放器实际状态 playing 和 用户控制状态 wantPlaying

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.