我正在尝试使用HTML5的<audio>
标签,并注意到一些与currentTime
属性有关的奇怪行为。
我想播放本地音频文件,并让timeupdate
事件通过比较currentTime
属性和duration
属性来检测它何时完成。
如果我让歌曲从开始到结束播放,这实际上相当好用 - 歌曲的结尾被正确确定。
但是,手动更改currentTime
(直接通过JavaScript或使用基于浏览器的音频控件)会导致API不再返回正确的currentTime
值,而似乎将其设置在实际播放位置之前的几秒钟。
(这些“几秒钟”的提前量基于Chrome,Firefox似乎完全疯狂,导致差异要大得多。)
这是一个关于问题的小jsFiddle示例:http://jsfiddle.net/yp3o8cyw/2/
有人能告诉我为什么会发生这种情况吗?还是我没有理解API应该做什么?
P.S.:我刚刚注意到,这实际上只发生在MP3编码文件中,OGG文件完全没问题。