在HTML5视频中设置currentTime的问题

时间:2013-11-27 10:37:45

标签: javascript html5 video html5-video

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

<video id="videoPrincipal" src="" width="640" height="360" controls preload></video>

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

myVid = document.getElementById('videoPrincipal');
myVid.src = 'video.mp4';
myVid.play();
myVid.currentTime ='5';

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

如果在调用播放函数之前设置currentTime,它会给出同样的错误。

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

提前致谢

3 个答案:

答案 0 :(得分:23)

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

myVid.play();
myVid.addEventListener('canplay', function() {
    this.currentTime = 5;
});

答案 1 :(得分:0)

video = document.getElementById('video');
begin_play  = 50;
play_video_first = true; //if you want to run only first time    
video.addEventListener("play", capture, false);

function capture(event) 
{
     if (event.type == "play"){
         if(play_video_first){
             play_video_first = false;
             video.currentTime = begin_play;
          }
     }
}

答案 2 :(得分:-1)

你必须等到它准备好发挥,
即,不要指望play是阻止函数
按如下方式更改您的代码:

myVid.play();
myVid.media.addEventListener('playing', function(){
    myVid.setCurrentTime(5);
});