我注意到一个小的不一致之处,我希望将其验证为 HTML5 的怪癖或特定于Video.js的东西。
似乎如果您currentTime()
在提供新时间的同时调用 Video.js 的函数,则任何进一步的调用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 上的 Firefox 中重现(全部使用 HTML5)。我也可以在 IE8 上使用 Flash 播放器和 IE9 使用 HTML5 播放器重现此内容。