我注意到一个小小的不一致性,我希望将其验证为HTML5的怪癖或Video.js特有的内容。
似乎如果您在提供新时间的同时调用Video.js'currentTime()
函数,则对currentTime()
的任何进一步调用(以获取当前时间)将不会返回正确的时间(它将会返回上一次),直到timeupdate
事件触发。 timeupdate
事件发生后,currentTime()
将返回正确的时间。
例如,假设视频尚未开始播放,但Video.js已加载,以及所有视频元素等:
videoPlayer.addEvent('timeupdate', function() {
console.log('Event callback: ' + player.currentTime);
});
console.log('Original time: ' + player.currentTime);
player.currentTime(100);
console.log('New time: ' + player.currentTime);
我期待的输出看起来像:
Original time: 0
New time: 100
Event callback: 100
然而,我收到的是:
Original time: 0
New time: 0
Event callback: 100
任何见解都会很棒!
编辑:我可以在OSX上的Chrome和Safari中重现这一点,但不能在OSX上重放这些内容(全部使用HTML5)。我也可以使用Flash播放器和使用HTML5播放器的IE9在IE8上重现这一点。
答案 0 :(得分:2)
我在其他几个html5 / flash播放器上看到了类似的行为。
我一直假设即使在通过currentTime(100);
搜索之后,播放头也不会在下一个timeupdate
事件之前更新。