在HTML5视频中设置currentTime的问题

Yis*_*ses 13 javascript video html5 html5-video

我的html中间有一个视频.正如你刚才所见,我没有任何消息来源

<video id="videoPrincipal" src="" width="640" height="360" controls preload></video>
Run Code Online (Sandbox Code Playgroud)

当我单击一个按钮时,我触发一个功能:

myVid = document.getElementById('videoPrincipal');
myVid.src = 'video.mp4';
myVid.play();
myVid.currentTime ='5';
Run Code Online (Sandbox Code Playgroud)

视频开始正​​常播放,但我无法设置当前时间(我在http://www.w3schools.com/tags/av_prop_currenttime.asp中看到的相同)

如果我在调用play函数之前设置currentTime,它会给我同样的错误.

在控制台中显示的错误如下:"Uncaught InvalidStateError:尝试使用不可用或不再可用的对象." (在currentTime行中)但是当我搜索这个问题时,我无法与视频相关联,只能使用画布.

提前致谢

Dan*_*eed 25

你不必等待它开始播放,但它必须准备好发挥.有canplay事件要做,所以这样的事情应该工作:

myVid.play();
myVid.addEventListener('canplay', function() {
    this.currentTime = 5;
});
Run Code Online (Sandbox Code Playgroud)

  • 设置`currentTime`会触发`canplay`事件,所以这个例子创建了一个循环. (12认同)
  • 您没有提到您正在使用哪种浏览器,但如果是 Chrome,您可能会遇到错误。https://bugs.chromium.org/p/chromium/issues/detail?id=1018533(多年来,类似的错误已被多次提交和关闭,因为它显然只发生在某些视频中。)我花了几个小时尝试了许多不同的事件,结果发现浏览器已经被塞满了。 (3认同)