video.js currentTime()不正确,直到timeupdate事件触发

时间:2013-05-13 01:51:59

标签: javascript html5 html5-video video.js

我注意到一个小小的不一致性,我希望将其验证为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上重现这一点。

1 个答案:

答案 0 :(得分:2)

我在其他几个html5 / flash播放器上看到了类似的行为。

我一直假设即使在通过currentTime(100);搜索之后,播放头也不会在下一个timeupdate事件之前更新。