2016-09-28 64 views
0

我的设计中有两个视频文件。第一个是标志揭示动画,第二个是标志动画。我只想在每次加载页面时加载第一个视频。我想在第一个视频结束后加载第二个视频。在第一个视频结束后更改视频源

这里我的目标是:第一个视频在页面加载时播放(只有一次 - 每页加载)。如果第一个视频结束,第二个视频将在循环中播放。我不想一次又一次显示徽标(第1次)。这个怎么做。希望我会得到解决方案。

这里是我的代码。

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(); 
    } 

演示:https://jsfiddle.net/jLa1s62w/

+0

你的小提琴是空的? –

+0

请修复您的jsfiddle链接。 – yuriy636

+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)

+0

亚:)感谢哥们:) <3 –

+0

有跳,如果它改变为第二....我怎么能解决这个问题? –