0

给定 HTML5 视频,是否可以创建一个 for 或 while 循环,在其中的视频结束之前不会继续?例如,下面的代码应该按顺序播放三个视频,而不是同时播放。

<video id="video0">
    <source src="video0.mp4">
</video>
<video id="video1">
    <source src="video1.mp4">
</video>
<video id="video2">
    <source src="video2.mp4">
</video>

.

var i=0;
while (i<3) {
    document.getElementById('video'+i).play();
    i++;
}
4

1 回答 1

1

循环在这里无法满足您的需求,您最好监听事件。

可以在W3C 页面上找到与 Media-Elements 相关的所有事件的列表

因此,在您的具体情况下,这样的事情应该可以帮助您:

var playVideo = function(videoID){
    var video = document.getElementById('video'+videoID);

    if(video){    

        video.play();
        //binding the eventHandler for the event firing at the end of the video
        video.onended = function(e){
            playVideo(videoID++);
        }

        /* 
        Another way of binding the event-listener:
        video.addEventListener('ended',function(){
            playVideo(videoID++);
        });
        */
    }
}

playVideo(0);
于 2012-06-04T22:58:50.880 回答