gpt4 book ai didi

javascript - 在 "ended"上播放数组中的下一个视频

转载 作者:行者123 更新时间:2023-11-28 16:18:20 25 4
gpt4 key购买 nike

我有一系列视频,当一个视频结束时,应该播放数组中的下一个视频。
我找到了这个脚本:

function myNewSrc() {
var myVideo = document.getElementsByTagName("video")[0];
myVideo.src =
"http://cheerioscoupons.info/wp-content/uploads/_Cheerios-Coupons-1-300x283.jpg";
myVideo.load();
myVideo.play();
}
function myAddListener(){
var myVideo = document.getElementsByTagName("video")[0];
myVideo.addEventListener('ended',myNewSrc,false);
}

但我在当前脚本中实现它时遇到了困难,即,

var numb = $(this).index(),
videos = [
"images/talking1.m4v",
"images/talking2.m4v",
"images/talking1.m4v",
"images/talking2.m4v",
"images/talking1.m4v",
"images/talking2.m4v"
],
myVideo = document.getElementById("myVid");
myVideo.src = videos[numb];
myVideo.load();
setTimeout(function(){
myVideo.play();
}, 200);

那么,有两个问题:

  1. 他们有干扰吗?第一个根本不会改变视频。
  2. 如何组合这些,以便下一个调用的视频成为数组中的下一个视频?

最佳答案

1.
document.getElementsByTagName 将返回一组元素,而不是一个。所以

var myVideo = document.getElementsByTagName("video");
myVideo.addEventListener('ended',myNewSrc,false); //wrong

var myVideo = document.getElementsByTagName("video");
myVideo.load(); //wrong
myVideo.play(); //wrong

它应该是:

myVideo[0].load()   //if there is only one

for(var i=0;i<myVideo.length;i++){
myVideo[i].load(); //if there is more
}

2.
结束后播放另一个视频,

var videos = [
"images/talking1.m4v",
"images/talking2.m4v",
];
function playArray(index,ele,array,listener){
ele.removeEventListener(listener||0);
ele.src = array[index];
ele.load();
ele.play();
index++;
if(index>=array.length){
index=0;
}
listener = ele.addEventListener('ended',function(){
playArray(index,ele,array,listener);
},false);
}
playArray(0,document.getElementById("myVid"),videos);

现场演示: http://jsfiddle.net/DerekL/qeLcD/ (替换为带有文本的数组,而不是视频)

关于javascript - 在 "ended"上播放数组中的下一个视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10668399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com