控制具有全局变量的视频播放列表

时间:2017-10-21 15:48:44

标签: javascript html5 video global interactive

我有一段播放视频的视频播放列表。 我需要播放列表才能继续播放,直到它到达名为循环的视频,并循环播放视频,直到其中一个全局变量 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();
});

有人可以就如何实施这个提出一些建议吗?

2 个答案:

答案 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 播放下一个视频 然后在最后一帧(结束周期)播放暂停视频 }