Javascript onended正在检测视频的结尾

时间:2017-09-19 05:32:53

标签: javascript html html5 video

我的代码中的所有内容都有效。完成当前的歌曲后,它不会切换到下一首歌曲/视频。我尝试添加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>

1 个答案:

答案 0 :(得分:2)

如果您要触发结束事件doc),则只需从视频代码中删除loop参数:

<video id="vid" src="main/" playsinline autoplay>

(您的代码将通过在结束时加载新歌来处理循环。)

BTW,请var video = document.getElementById("vid");引用您的<video>标记,它比第一个声明更短更清晰。