我的代码中的所有内容都有效。完成当前的歌曲后,它不会切换到下一首歌曲/视频。我尝试添加onended
事件处理程序(在标记和JavaScript中)但失败了。我也尝试过jQuery,但它没有用。由于某些原因,它不会在歌曲结尾处改变歌曲。相反,它会一遍又一遍地重播同一首歌。
<video id="vid" src="main/" playsinline autoplay loop>
<script>
var video = document.currentScript.parentElement;
video.volume = 0.1;
var lastSong = null;
var selection = null;
var playlist = ["main/songn.mp4", "main/songl.mp4", "/main/songt.mp4", "/main/songf.mp4"]; // List of Songs
var video = document.getElementById("vid");
video.autoplay=true;
video.addEventListener("ended", selectRandom);
function selectRandom(){
while(selection == lastSong){
selection = Math.floor(Math.random() * playlist.length);
}
lastSong = selection;
video.src = playlist[selection];
}
selectRandom();
video.play();
</script>
</video>
答案 0 :(得分:2)
如果您要触发结束事件(doc),则只需从视频代码中删除loop
参数:
<video id="vid" src="main/" playsinline autoplay>
(您的代码将通过在结束时加载新歌来处理循环。)
BTW,请var video = document.getElementById("vid");
引用您的<video>
标记,它比第一个声明更短更清晰。