
提前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]
<!DOCTYPE html><html>
<head>
<meta charset="gbk">
<title>�����̳� ѭ������(runoob)</title>
</head>
<body>
<p>12212</p>
<video width="80%" controls id="myvideo" src="1.mp4" ></video>
<script type="text/javascript">
var vlist=['1.mp4','movie.mp4']
var vlen=vlist.length
var curr=0
var vid=document.getElementById("myvideo")
vid.onended=function(){
vid.src=vlist[curr+1]
curr++
if(curr>=vlen){curr=0vid.src=vlist[0]}
vid.play()//Ҳ������video������autoplay,���˵�ַ�����Զ����š�
}
</script>
</body>
</html>
不用JS,只能用滚动标签<marquee></marquee>direction 表示滚动的方向,值可以是left,right,up,down,默认为left
behavior 表示滚动的方式,值可以是scroll(连续滚动)slide(滑动一次)alternate(来回滚动)
loop 表示循环的次数,值是正整数,默认为无限循环
scrollamount 表示运动速度,值是正整数,默认为6
scrolldelay 表示停顿时间,值是正整数,默认为0,单位是毫秒
valign 表示元素的垂直对齐方式,值可以是top,middle,bottom,默认为middle
align 表示元素的水平对齐方式,值可以是left,center,right,默认为left
bgcolor 表示运动区域的背景色,值是16进制的RGB颜色,默认为白色
height、width 表示运动区域的高度和宽度,值是正整数(单位是像素)或百分数,默认width=100% height为标签内元素的高度
hspace、vspace 表示元素到区域边界的水平距离和垂直距离,值是正整数,单位是像素。
onmouseover=this.stop() onmouseout=this.start() 表示当鼠标移上区域的时候滚动停止,当鼠标移开的时候又继续滚动。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)