![](/img/trans.png)
[英]HTML5 Video - How to do a seamless play and/or loop of several videos?
[英]HTML5 video how to play two videos in one video element
我试图让两个不同的视频在一个视频元素中播放,但放置两个源只播放第一个。 我应该用 jQuery 做这个吗? 代码(HTML):
<video autoplay loop id="bbgVid">
<source src="style/mpVideos/mpv1.mp4" type="video/mp4">
<source src="style/mpVideos/mpv2.mp4" type="video/mp4">
</video>
正如我在评论中提到的,来源列表不是播放列表,而是一组替代来源。 一旦浏览器找到受支持的一个,其余的将被忽略。 您必须使用 JavaScript 来实现您想要的(独立于使用一两个视频标签来实现)。
正如您提到的问题中只有一个具有不同来源的video
标签,这是一种可能性。 想法如下:
video
,将video
src 更改为下一个source
的 src。在 JavaScript 中,它会是这样的:
var myvid = document.getElementById('myvideo'); myvid.addEventListener('ended', function(e) { // get the active source and the next video source. // I set it so if there's no next, it loops to the first one var activesource = document.querySelector("#myvideo source.active"); var nextsource = document.querySelector("#myvideo source.active + source") || document.querySelector("#myvideo source:first-child"); // deactivate current source, and activate next one activesource.className = ""; nextsource.className = "active"; // update the video source and play myvid.src = nextsource.src; myvid.play(); });
<video id="myvideo" width="320" height="240" controls style="background:black"> <source class="active" src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" /> <source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4" /> </video>
这些视频来自W3Schools HTML5 视频页面。
正如 Kaiido 在评论中所指定的,一个更简单的替代方法是在 JavaScript 中将video
列表放在一个数组中,并相应地更新video
源,而不是直接在视频下放置多个源:
var myvid = document.getElementById('myvideo'); var myvids = [ "http://www.w3schools.com/html/mov_bbb.mp4", "http://www.w3schools.com/html/movie.mp4" ]; var activeVideo = 0; myvid.addEventListener('ended', function(e) { // update the new active video index activeVideo = (++activeVideo) % myvids.length; // update the video source and play myvid.src = myvids[activeVideo]; myvid.play(); });
<video src="http://www.w3schools.com/html/mov_bbb.mp4" id="myvideo" width="320" height="240" controls style="background:black"> </video>
你也可以看到它在这个 JSFiddle 上工作: http : //jsfiddle.net/bnzqkpza/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.