HTML5音频:设置CurrentTime,然后在iPhone上播放自发倒带50-100毫秒



我正在尝试从文件内的特定位置播放音频,同时还使用OnTimeUpdate事件在播放上接收更新。我检查了OntimeUpdate处理程序中的当前时间属性,以便可以提供有关文件中位置的视觉反馈。

我的问题是,当我将当前时间设置为已知值,然后呼叫play(),当我第一次将当前时间属性获取在我的OnTimeUpdate处理程序中时,它将是我设置的。但是下一次称为ontimeupdate,它实际上是一个比我最初开始播放的小的值,有时甚至超过100毫秒!

例如:

player.currentTime = 2.0;
player.play();

然后,从我的OntimeUpdate处理程序中输出player.currenttime:

2
1.95 // WTF??
2.24
2.56
...

问题在于,这会导致我的UI小部件,该小部件指示轨道中的当前位置跳来跳去。我正在实施一个笨拙的解决方法,但是我想知道是否有任何已知的方法可以阻止这种情况发生,或者我只是不做正确的事情。

据我所知,它仅在iPhone上发生。我正在使用iPhone 6和iOS 10.1.1进行测试。

如果您想亲自看到这个,这是一个演示。

http://codepen.io/brianrak/pen/7db413c44431827fe3318e999aeae497cf2a?editors=1010

预先感谢!

var second = ("0" + parseInt(player.currentTime % 60)).slice(-2);
var minutes = ("0" + parseInt((player.currentTime / 60) % 60)).slice(-2);

相关内容

最新更新