我有一段播放视频的视频播放列表。 我需要播放列表才能继续播放,直到它到达名为循环的视频,并循环播放视频,直到其中一个全局变量 lvl1_win 或 lvl2_loose (从另一个脚本)转1。 根据结果,播放不同的播放列表, playlist_lvl2 或 playlist_lvl1_gameover 这是我目前使用的播放列表。它只是循环播放视频一次:
var activeloop;
var myvid = document.getElementById('intro_lvl1');
myvid.addEventListener('ended', function (e)
{
var activesource = document.querySelector("#intro_lvl1 source.active");
var nextsource = document.querySelector("#intro_lvl1 source.active +
source") ||
document.querySelector("#intro_lvl1 source:first-child");
//for the video with the name "loop" in it.
var loopsource = document.querySelector("#intro_lvl1 source.loop");
activesource.className = "";
nextsource.className = "active";
myvid.src = nextsource.src;
myvid.play();
});
有人可以就如何实施这个提出一些建议吗?
答案 0 :(得分:0)
您可以使用RegExp.prototype.test()
检查.src
是否包含"loop"
,将.loop
设置为true
if (/loop/.test(nextsource.src)) {
// perform logic here
if (myvid.loop != true) {
myvid.loop = true
};
if (lvl1_win == 1 || lvl2_loose == 1) {
// do other stuff
}
}
答案 1 :(得分:0)
感谢您的回答! 我得到它与以下工作:
var lvl1_win;
var lvl1_loose;
var myvid = document.getElementById('intro_lvl1');
myvid.addEventListener('ended', function (e) {
var activesource = document.querySelector("#intro_lvl1 source.active");
var nextsource = document.querySelector("#intro_lvl1 source.active +
source") || document.querySelector("#intro_lvl1 source:first-child");
if (/loop/.test(nextsource.src)) {
if (myvid.loop != true) {
myvid.loop = true;
};
if (lvl1_win == 1) {
alert("Won level 1");
}
if (lvl1_loose == 1) {
alert("Gameover level 1");
}
} else {
activesource.className = "";
nextsource.className = "active";
myvid.src = nextsource.src;
myvid.play();
}
});
但是,我无法在相同的来源中添加特定视频以获胜或失败,否则会弄乱播放列表。 或者是否可以播放松散类的下一个视频,如果丢失则反之亦然? 我的意思是:
if(lvl1_loose == 1){ 使用课程 gameover 播放下一个视频 然后在最后一帧(结束周期)播放暂停视频 }