HTML5视频如何在一个视频元素中播放两个视频
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
的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
源,而不是直接在视频下使用多个源:
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/
相关文章:
- 如何检查用户在html5视频播放器中观看了完整的视频
- 可以在响应时隐藏iphone上的“播放”按钮以进行视频播放
- html5视频播放器和视频js之间的关系
- 视频播放器错误promise DOMException中未捕获
- html视频播放器并不总是从src读取
- HTML 5视频播放器用给定的数字更新currentTime
- html5视频交互式视频播放器
- 如何构建自己的 VAST 视频播放器
- 如何专注于YouTube视频播放器对象
- HTML5视频播放/停止按钮与Javascript
- 如何在前台弹出YouTube视频播放器
- 如何在悬停在图像上时弹出youtube视频播放器
- 将Backbone事件与HTML5视频播放事件结合使用
- 移动设备的动态视口始终包含固定尺寸的视频播放器
- 浏览器同步摄像头加速视频播放不是一个功能
- 使用MediaSource扩展播放视频播放列表
- 当我在视频播放器上单击播放时,它会在页面上播放两个视频
- 嵌入视频播放器播放按钮可同时播放所有视频播放器
- 设置计时器以等待为flash回退视频播放器加载swfobject脚本
- 三星智能电视视频播放器应用程序-访问存储在USB上的mp4