Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 在HTML 5的时间数组中循环<;视频>;_Javascript_Html_Html5 Video_Settimeout - Fatal编程技术网

Javascript 在HTML 5的时间数组中循环<;视频>;

Javascript 在HTML 5的时间数组中循环<;视频>;,javascript,html,html5-video,settimeout,Javascript,Html,Html5 Video,Settimeout,我有一个时间数组,用于存储元素的暂停时间: var pauseTimes = [0, 5, 12, 15]; 我想有一个循环功能,在0秒开始视频,在5秒开始视频,然后在中添加一些内容。然后,我希望该功能在5秒时启动视频,并在12秒时暂停视频,然后在中添加内容。等等等等 我有一个从0秒到5秒的函数,然后从5秒到12秒(等等,你可以看到图片): 但我不知道如何连续循环数组(即从0到5、5到12、12到15)以及暂停和向div添加内容之间的循环 到目前为止,我使用的是for循环: var m =

我有一个时间数组,用于存储
元素的暂停时间:

var pauseTimes = [0, 5, 12, 15];
我想有一个循环功能,在0秒开始视频,在5秒开始视频,然后在
中添加一些内容。然后,我希望该功能在5秒时启动视频,并在12秒时暂停视频,然后在
中添加内容。等等等等

我有一个从0秒到5秒的函数,然后从5秒到12秒(等等,你可以看到图片):

但我不知道如何连续循环数组(即从0到5、5到12、12到15)以及暂停和向div添加内容之间的循环

到目前为止,我使用的是for循环:

  var m = 0;
  function loopContinuously() {
    for (m = 0; m < pauseTimes.length-1; m++) {
      loopThrough();
      // Adding stuff to the div here
      m++;
    }
  }
var m=0;
函数循环(){
对于(m=0;m

它做了我想做的事情,但它在时间间隔内跳得很快。是否有办法在指定的时间间隔内(在数组中)实际浏览视频并将内容添加到

要在时间间隔之间创建一些延迟,可以尝试使用a并在“timeupdate”事件中增加变量
b

也许这样的设置可以帮助您:

  • 视频从0开始播放

  • 以5秒的时间暂停setTimeout函数中给定的毫秒数,然后继续到12秒

  • 在setTimeout函数中给出的毫秒数内暂停12秒,然后继续到15秒

  • 以15秒的时间暂停setTimeout函数中给定的毫秒数,然后从0开始播放

例如:

var pauseTimes = [0, 5, 12, 15];
var b = 0;
var vid = document.getElementById("video");

vid.addEventListener("timeupdate", function () {
    if (this.currentTime >= pauseTimes[b]) {
        vid.pause();
        // Adding stuff to the div here
        b++;

        setTimeout(function () {
            if (b === pauseTimes.length) {
                // reset b
                b = 0;
                // reset the video
                vid.currentTime = 0;
                vid.load();
            } else {
                vid.play();
            }
        }, 1000);
    }
}, false);

vid.currentTime = pauseTimes[b++];
vid.play();

除了使用setTimeout,真的没有其他方法吗?@user5139637此代码也可以在不使用
setTimeout
的情况下工作。我添加了setTimeout,因为您提到它会在时间间隔内快速跳过。
var pauseTimes = [0, 5, 12, 15];
var b = 0;
var vid = document.getElementById("video");

vid.addEventListener("timeupdate", function () {
    if (this.currentTime >= pauseTimes[b]) {
        vid.pause();
        // Adding stuff to the div here
        b++;

        setTimeout(function () {
            if (b === pauseTimes.length) {
                // reset b
                b = 0;
                // reset the video
                vid.currentTime = 0;
                vid.load();
            } else {
                vid.play();
            }
        }, 1000);
    }
}, false);

vid.currentTime = pauseTimes[b++];
vid.play();