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

我的问题是,当我将currentTime设置为一个已知值,然后调用play()时,这是我第一次在onTimeUpdate处理程序中获得currentTime属性时,它将与我设置时一样。但是,下次调用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/7db413c4431827fe3318e99ae497cf2a?editors=1010

提前致谢!

最佳答案

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

关于iphone - HTML5音频:设置currentTime,然后在iPhone上自发倒带50-100毫秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41134573/

10-12 02:17