采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,你好,你在这一节提到快速切换歌曲时,点击暂停,歌曲和歌词都仍然在播放的bug,你通过清除定时器的方法修复了,为什么还要将canplay换为play(play应该是写错了,源码也修正为playing了)呢?这部分没太理解。 按照我的理解就是歌曲在播放前ready了(ready歌曲才可以切换),再点击切换歌曲-》currentSong变化,然后又会将定时器清除,再重新设一个新的定时器,应该不会出问题了呀,为什么一定要确保在播放歌曲后在将ready的状态设置为true?
https://developer.mozilla.org/zh-CN/docs/Web/Guide/Events/Media_events
监听 playing 这个事件可以确保慢网速或者快速切换歌曲导致的 DOM Exception
老师,你好,我试了一下,我仅在currentSong切换时清除定时器,避免定时器的累积,没有修改ready的时机从canplay到playing,没有发现DOM Exception。 我认为老师当时的思路可能是这样的: 1、发现快速切换歌曲时,点击暂停会导致音乐和歌曲无法暂停; 2、读源码时发现定时器累积的问题,于是修改定时器; 3、但是修改定时器后,其实是无法解决1、这个bug的,因为这个bug其实只要切换歌曲后1秒内点击暂停歌曲就会触发 4、老师也发现这个问题了,于是思路变成希望点击切换音乐后1秒后音乐才能播放,播放后才让音乐可以播放(ready的标志位变成true),要实现这个就要让canplay时将ready标志位置为true改为playing时触发。 5、至此,bug解除 我觉得老师这个处理似乎体验不是太好,因为现在切换音乐必须要等待1秒,无法快速切换音乐,所以我的处理打算变成,保留canplay时将ready标志位置为true,但是点击播放/暂停的键会多了一个限制就是在playing后才能点击 因为老师的回答似乎不是正确的答案,所以这个回答我无法采纳
canplay 似乎也可以,play 事件是肯定不行的,不过我测试 canplay 和 playing 触发的时机似乎差不多,你在慢网速下也是需要等待的。另外用 playing 就不会存在你说的那种 Bug 了。
恩恩,好的,我先将课程学完,然后再试一下,现在工作越来越忙,用来思考学习的时间反而变少了
登录后可查看更多问答,登录/注册
Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。
1.6k 32
2.1k 31
1.7k 26
1.6k 25
2.0k 24
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号