使用全局变量控制视频播放列表
control video playlist with global variables
我有一个视频播放列表,可以一个接一个地播放视频。
我需要播放列表继续播放,直到到达名称为 loop 的视频,然后循环播放视频直到全局变量之一 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();
});
谁能给我一些关于如何实现这个的建议?
您可以使用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
}
}
感谢您的回答!
我得到它与以下工作:
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();
}
});
但是,我不能在同一来源添加具体的输赢视频,否则会弄乱播放列表。
或者是否可以用 class loose 播放下一个视频,如果丢失反之亦然?
我的意思是:
if (lvl1_loose == 1) {
播放下一个视频 class gameover
然后在最后一帧播放暂停视频(结束循环)
}
我有一个视频播放列表,可以一个接一个地播放视频。 我需要播放列表继续播放,直到到达名称为 loop 的视频,然后循环播放视频直到全局变量之一 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();
});
谁能给我一些关于如何实现这个的建议?
您可以使用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
}
}
感谢您的回答! 我得到它与以下工作:
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();
}
});
但是,我不能在同一来源添加具体的输赢视频,否则会弄乱播放列表。 或者是否可以用 class loose 播放下一个视频,如果丢失反之亦然? 我的意思是:
if (lvl1_loose == 1) { 播放下一个视频 class gameover 然后在最后一帧播放暂停视频(结束循环) }