【问题标题】:video.js currentTime() incorrect until timeupdate event firesvideo.js currentTime() 不正确,直到 timeupdate 事件触发
【发布时间】:2013-05-07 00:07:47
【问题描述】:

我注意到一个小的不一致之处,我希望将其验证为 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 上的 Firefox 中无法重现(全部使用 HTML5)。我也可以在 IE8 上使用 Flash 播放器和 IE9 使用 HTML5 播放器重现此内容。

【问题讨论】:

    标签: javascript html html5-video video.js


    【解决方案1】:

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

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

    【讨论】:

    • 通过我的实验似乎是这样。干杯!
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2015-04-25
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多