Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript video.js currentTime()在触发timeupdate事件之前不正确_Javascript_Html_Html5 Video_Video.js - Fatal编程技术网

Javascript video.js currentTime()在触发timeupdate事件之前不正确

Javascript video.js currentTime()在触发timeupdate事件之前不正确,javascript,html,html5-video,video.js,Javascript,Html,Html5 Video,Video.js,我注意到了一个小的不一致性,我希望将其验证为HTML5的一个怪癖,或者特定于HTML5的东西 如果您在提供新时间的同时调用Video.js'currentTime()函数,任何进一步调用currentTime()(获取当前时间)都不会返回正确的时间(它将返回上一时间),直到触发timeupdate事件。在timeupdate事件之后,currentTime()将返回正确的时间 例如,假设视频尚未开始播放,但video.js已加载,以及所有视频元等: videoPlayer.addEvent('t

我注意到了一个小的不一致性,我希望将其验证为HTML5的一个怪癖,或者特定于HTML5的东西

如果您在提供新时间的同时调用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)。我还可以使用Flash播放器在IE8上复制,使用HTML5播放器在IE9上复制。

我在其他几个HTML5/Flash播放器上也看到过类似的行为


我一直认为,即使在通过
currentTime(100)进行搜索之后,直到下一次
timeupdate
事件发生时,才会更新播放头

通过我的实验,情况似乎是这样。干杯