我的设计中有两个视频文件。第一个是徽标揭示动画,第二个是徽标动画。我想只在每次加载页面时加载第一个视频。我想在第一个视频结束后加载第二个视频。
此处我的目标是:第一个视频在页面加载时播放(只有一次 - 每次加载页面)。如果第一个视频结束,则第二个视频将在循环中播放。我不想一次又一次地显示徽标显示(第一个)。这该怎么做。希望我能得到解决方案。
以下是我的代码。
HTML:
<video width="400" controls id="myVideo" autoplay>
<source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
<source src="http://www.w3schools.com/html/mov_bbb.ogg" type="video/ogg">
Your browser does not support HTML5 video.
</video>
JS
document.getElementById('myVideo').addEventListener('ended',myHandler,false);
function myHandler(e) {
alert();
var videoFile = 'https://static.videezy.com/system/resources/previews/000/002/165/original/Black-cat-in-green-grass.mp4';
$(' #myVideo source').attr('src', videoFile);
$("#myVideo")[0].load();
}
答案 0 :(得分:2)
你几乎得到了它。
document.getElementById('myVideo').addEventListener('ended', myHandler, false);
function myHandler(e) {
alert();
var videoFile = 'https://static.videezy.com/system/resources/previews/000/002/165/original/Black-cat-in-green-grass.mp4';
$(' #myVideo source').attr('src', videoFile);
$('#myVideo').attr("loop", true); /* 1 */
$("#myVideo")[0].load();
document.getElementById('myVideo').removeEventListener('ended', myHandler, false) /* 2 */
}
1)循环属性,以便第二个视频循环。
2)删除事件监听器,以便不再替换视频。
https://jsfiddle.net/yuriy636/jLa1s62w/1/
注意:如果您使用的是jQuery,还可以使用jQuery的事件方法:
$('#myVideo').on('ended',myHandler)
和$('#myVideo').off('ended',myHandler)