6

我注意到一个小的不一致之处,我希望将其验证为 HTML5 的怪癖或特定于Video.js的东西。

似乎如果您currentTime()在提供新时间的同时调用 Video.js 的函数,则任何进一步的调用currentTime()(以获取当前时间)都不会返回正确的时间(它将返回上一个时间),直到timeupdate事件触发。活动结束后timeupdatecurrentTime()将返回正确时间。

例如,假设视频尚未开始播放,但 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 上的 Firefox 中重现(全部使用 HTML5)。我也可以在 IE8 上使用 Flash 播放器和 IE9 使用 HTML5 播放器重现此内容。

4

1 回答 1

2

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

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

于 2013-05-15T12:27:21.293 回答