HTML5视频在Chrome中的currentTime不更新

3
在Chrome中,对于某些页面,在<video id="player" preload="metadata" playsinline>标签中设置currentTime时,它不会更新。例如,如果我设置document.getElementById('player').currentTime = 5,它不会更新,而是从0开始播放。
我在另一个页面中添加了相同的代码,但在Chrome中没有任何问题,一切正常。而在Firefox中,这两个页面都可以正常工作。
顺便说一下,我正在尝试使用自定义视频控件来查找视频并设置当前时间。只有在这种情况下才无法正常工作。
我不知道发生了什么。请给予建议。

我的猜测是,当您设置视频元素的“currentTime”时,它可能还没有准备好。 - jmsn
1个回答

0

你应该先加载视频,然后再设置.currentTime。

试试这个:

let player = document.getElementById('player');
preload(player, 5);
function preload(elem, time){
 elem.setAttribute('preload', 'auto');
 elem.addEventListener('canplaythrough', setCurrentTime);
 function setCurrentTime(){
 elem.currentTime  = time;
 elem.setAttribute('preload','none');
 elem.removeEventListener('canplaythrough', setCurrentTime);
 }
}

我正在尝试使用自定义视频控件查找视频并设置当前时间。但只有在这种情况下,它无法正常工作。我已经稍微编辑了一下这篇文章以便更好地理解。对于没有详细说明的部分,我感到抱歉。 - Abraham Gnanasingh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接