Javascript 在视频中跳转到阵列中的时间

Javascript 在视频中跳转到阵列中的时间,javascript,html,video,Javascript,Html,Video,按照的思路,我试图在每段视频播放完毕后自动从一段视频跳到下一段视频。每个段将具有相同的持续时间,并且每个段的开始时间将在一个数组中 我似乎不知道如何在addEventListener之后循环数组 var video = document.getElementById('player1'); function settheVariables() { var videoStartTime= ["4","15","26","39"]; for (var i = 0; i < videoS

按照的思路,我试图在每段视频播放完毕后自动从一段视频跳到下一段视频。每个段将具有相同的持续时间,并且每个段的开始时间将在一个数组中

我似乎不知道如何在addEventListener之后循环数组

var video = document.getElementById('player1');


function settheVariables() {

var videoStartTime= ["4","15","26","39"];

for (var i = 0; i < videoStartTime.length; i++) {

if (video.currentTime < videoStartTime[0] ){
      video.currentTime = videoStartTime[i];
}
durationTime = 5;

}



//This part works when I plug in numbers for videoStartTime.

video.addEventListener('timeupdate', function() {

    if(this.currentTime > (// videoStartTime [current index] + durationTime)){

    this.currentTime = (// videoStartTime with next index);
    video.play();  }

});

}
var video=document.getElementById('player1');
函数settheVariables(){
变量videoStartTime=[“4”、“15”、“26”、“39”];
对于(变量i=0;i(//videoStartTime[当前索引]+持续时间)){
this.currentTime=(//带下一个索引的videoStartTime);
video.play();}
});
}

您需要将数组中的值更改为整数,而不是字符串-您不是在对苹果进行比较

下面的更新且稍微简化的示例播放(最初从视频开始),直到时间戳击中当前标记加上五秒钟,然后跳到下一个标记(并循环)

它不能满足用户自己擦洗视频的需要(虽然在当前部分开始时间超过5秒时,它会陷进去,但返回会让事情变得有点混乱)-如果您想控制在这些5s范围内,您需要对时间戳和阵列进行更智能的检查,以确保您的位置符合要求

无论如何。。。守则:

<script>
var video = document.getElementById('player1');

var videoStartTime= [4,15,26,39];
durationTime = 5;
currentIndex=0;

video.addEventListener('timeupdate', function() {
//  console.log(this.currentTime);

    if (this.currentTime > (videoStartTime[currentIndex] + durationTime))
    {
        currentIndex = (currentIndex + 1) % videoStartTime.length // this just loops us back around
    this.currentTime = videoStartTime[currentIndex];
//    video.play(); // don't need this if the video is already playing
 }

});

</script>

var video=document.getElementById('player1');
var videoStartTime=[4,15,26,39];
持续时间=5;
currentIndex=0;
video.addEventListener('timeupdate',function(){
//console.log(this.currentTime);
if(this.currentTime>(视频开始时间[currentIndex]+持续时间))
{
currentIndex=(currentIndex+1)%videoStartTime.length//这只是让我们循环一下
this.currentTime=videoStartTime[currentIndex];
//video.play();//如果视频已在播放,则不需要此选项
}
});

我完全忽略了整数/字符串问题。我把它复杂化了。我非常感谢像你这样的人帮助我学习。非常感谢。