求教:html5如何实现连续播放多个视频

求教:html5如何实现连续播放多个视频,第1张

连续播放两个视频是什么意思?

如果是同时播放两个,写两个 <video></video>标签就行了,一个标签放一个视频;

如果是播放完一个视频后接着再播放下一个视频这样连续播放,用脚本监听 <video>标签的视频播放结束 事件,再接着播放下一个视频就行;

1

<video id="video" src="test1.mp4"></video>

<script>

var video = document.getElementById('video')

video.addEventListener('ended',function(){

// 第一个视频播放结束

// 如果要继续播放第二个视频,改变 <video>标签的 (src="test2.mp4") 属性或者新建一个 video 标签播放视频都可以

},false)

</script>

通过html5中的video标签添加视频文件。

1、新建html文件,如图所示,在body标签中添加video标签,为video标签设置“src”属性,属性值是视频文件地址,这里以html同一目录下的“movie.mp4”视频为例:

2、此时的视频只会显示一个封面,并没有控制按钮,这时为video标签添加“controls”属性,如图所示,不需要添加属性值,可以看到视频中出现了常用的控制按钮:

3、直接插入的视频显示宽和高是视频本身默认的宽和高,这时可以给video添加我们想要的宽和高,这里以宽度400和高度300为例,添加属性“width”,属性值为“400”,添加属性“height”,属性值为“300”:

4、这时视频默认是加载完成后等待用户点击播放按钮再播放,如果需要加载完成后自动播放,可以给video添加属性“autoplay”,属性值为“autoplay”,这时视频加载完成后就会自动播放:

提前buffer好就行。 play本身是没有卡顿的。又不是播放什么特殊的东西。

基本没有无缝播放这种需求,因为这对用户影响也太大了这。转折的时候pause 个一秒才是正常的吧。

你想啊, 前面一个特别柔和,后面一段特别激烈,不给用户一点时间,人家直接受不了就关了。。。。

如果是一部视频分两段,请好好streaming。。。

一、首先用js监听ended事件,然后更改src,再play。此方法出现题主所说的卡顿,没法无缝循环。

二、然后想预载入多个video标签,每个video tag设置所要循环的src,第一个要播放的video设置正常的宽高,play(), z-index :0。其他video tag设置width:1pxheight:1px并且暂停(preload),监听播放中的video ended,改变width和height,设置为1px,把下一个播放的video tag设置成正常宽高,z-index 0;   这个方法没有实际测试,目测流行浏览器下应该是可行的,但是微信浏览器等定制类的估计不行,video tag会被自动最大化。

三、如果服务器允许跨域和设置cors,使用flv.js的多来源播放flv应该是可行的,flv.js或者其他非video tag播放器,都使用ajax的xhr或者fetch来获取视频片段数据,只是获取片段需要知道range,服务器的cors策略要支持range和length,可惜我用的是第三方服务器,自己设置不了cros。

参考资料

知乎.知乎[引用时间2018-1-3]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8323653.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存