audio如何监听缓存的状态?

现在要实现一个音乐的缓存条,现在实现的方法是

 var bufferInterval = setInterval(function(){
                        if (musicPl.readyState ===4){
                            that.musicStatus =(musicPl.buffered.end(0)/musicPl.duration);
                            if (musicPl.buffered.end(0)===musicPl.duration){
                                clearInterval(bufferInterval)
                            }
                        }
                    },100)

使用setInterval 重复获取缓存状态并赋值感觉,这样会浪费太多内存。
!!请问有没有什么addEventListener能够监听到audio的缓存状态。每当一缓存就可以监听到,从而获取到缓存状态
如果没有上面的代码对性能影响如何?

阅读 4.9k
2 个回答

audio的oncanplay事件应该可以解决的。
还是说一定要等到全部缓存完才行?

网速慢(用chrome使用fast 3G模式网速)的时候 musicPl.buffered.end(0) 会小于 musicPl.duration 而且不会更新

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题