如何在Pageload上随机播放视频?

时间:2019-06-07 07:08:40

标签: javascript html

我正在尝试在html / js中制作一个随机视频播放器。 它应该在页面加载时播放另一部视频,并且一旦其中一部视频结束,就应该播放另一部视频。

HTML

<video width="320" height="240" autoplay>
    <source src="abcdefg.com/example1.mp4" type="video/mp4">
    <source src="abcdefg.com/example2.mp4" type="video/mp4">
</video>

JS

<script>

var videos = [
    [{type:'mp4', 'src':'abcdefg.com/example1.mp4'}],
    [{type:'mp4', 'src':'abcdefg.com/example2.mp4'}],  
];


$(function() {
    var number = Math.floor(Math.random()*videos.length);
    $(this).find('source').each(function(index){ 
          videoSrc = videos[number][index].src;
          $(this).attr('src', videoSrc);
          $('video').load();
          $('video').play();
        });
});

</script>

但是,我当前的代码在每次重新加载页面时都播放相同的视频,并且一旦结束,就什么也没发生。

我需要如何优化代码,以便当上一个视频结束时,它会在每个页面加载时自动播放不同的视频?

1 个答案:

答案 0 :(得分:1)

尝试一下,我在video end属性中添加了一个事件侦听器,并调用了newvideo()函数,以便每次视频播放完成时,都会从array加载新的随机视频。我找不到更多的视频网址,您可以测试一下,让我知道它是否适合您。

$(document).ready(function(){

var videos = [
    [{type:'mp4', 'src':'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4'}],
    [{type:'mp4', 'src':'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4'}],
    [{type:'mp4', 'src':'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4'}]
];

// selecting random item from array,you can make your own
var randomitem = videos[Math.floor(Math.random()*videos.length)];

// This function adds a new video source (dynamic) in the video html tag

function videoadd(element, src, type) {
    var source = document.createElement('source');

    source.src = src;
    source.type = type;
   element.appendChild(source);
}
// this function fires the video for particular video tag

function newvideo(src)
{
var vid = document.getElementById("myVideo");
videoadd(vid,src ,'video/ogg');
vid.autoplay = true;
vid.load();
//vid.play();
}
// function call
newvideo(randomitem[0].src)

// Added an event listener so that everytime the video finishes ,a new video is loaded from array
document.getElementById('myVideo').addEventListener('ended',handler,false);

function handler(e)
{
newvideo(randomitem[0].src)

}
  

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<video width="320" height="240" autoplay id="myVideo">
  
</video>