[英]Javascript pause loop till event
我有JavaScript问题,这是我的代码的一部分:
for(var a = 0; a < videos.length; a++) {
source.setAttribute('src', videos[a]);
video.load();
video.play();
for(var b = 0; b < times[a].length; b++) {
video.addEventListener("timeupdate", function() {
if (this.currentTime >= times[a][b]) {
this.pause();
var answer = prompt("Please answer the question", "Answer");
}
}, false);
}
}
在阵列videos
我具有视频的链接,在阵列times
我有时间为每个视频不同地暂停视频的时间。
我的目的是先播放一个视频,然后在某些时间暂停视频,并在回答问题后继续播放,然后在视频结束时开始播放另一个视频,然后再次提问。 我的for循环可立即执行所有操作,并且无法按我的要求工作。 我想出了两种解决方案:
我不知道如何执行此操作,因此,我需要您的帮助。
您应该删除for
循环并仅使用事件。 这样的事情至少应该清除一些问题:
var a = 0;
video.src = videos[a];
video.load();
video.play();
check_time();
//instead of looping through your video, you wait until one is finished
//to play the next one.
video.addEventListener("ended", function(){
a++;
if(a<videos.length){
video.src = videos[a];
check_time();
}
//this will add event listener each time video is changed.
function check_time(){
var b = 0;
video.removeEventListener("timeupdate")
video.addEventListener("timeupdate", function() {
if (this.currentTime >= times[a][b]) {
this.pause();
var answer = prompt("Please answer the question", "Answer");
b++;
}
}, false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.