video.js currentTime() 不正确,直到 timeupdate 事件触发
Posted
技术标签:
【中文标题】video.js currentTime() 不正确,直到 timeupdate 事件触发【英文标题】:video.js currentTime() incorrect until timeupdate event fires 【发布时间】: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 播放器重现此内容。
【问题讨论】:
【参考方案1】:我在其他几个 html5/flash 播放器上看到了类似的行为。
我一直认为,即使在通过currentTime(100);
搜索后,播放头也不会在下一个timeupdate
事件之前更新。
【讨论】:
通过我的实验似乎是这样。干杯!以上是关于video.js currentTime() 不正确,直到 timeupdate 事件触发的主要内容,如果未能解决你的问题,请参考以下文章