PC端和移动端都支持视频video自动播放的代码
Posted wangmj518
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PC端和移动端都支持视频video自动播放的代码相关的知识,希望对你有一定的参考价值。
需求说明
今天有个朋友微信上说目前他们在做抖音短视频的内容创作,方向是国家级非物质文化遗产「汝瓷」,想在他们官方网站上增加短视频的功能,将抖音的内容页上传到网站上。
其实这个功能并不复杂,只需要开通上传视频功能即可,看了下后台使用的编辑器是UEditor,目前没有视频上传图标,就通过调用js实现了编辑器里的视频上传图标
UEditor默认的视频支持代码
视频上传后自动视频的代码如下
<video class="edui-upload-video vjs-default-skin video-js" controls="" preload="none" width="420" height="280" src="/public/uploads//video/20200320/1584690225630534.mp4" data-setup=""> <source src="/public/uploads//video/20200320/1584690225630534.mp4" type="video/mp4"/> </video>
最大的问题就是无法自动播放,并且限定了视频宽和高,原本竖形的视频变成了横形视频,只在中间一块播放,另外就是在为手动点播放,未播放时无法加载视频宽高、封面图、播放时间等信息,那么就需要解决这个问题。
自动播放及自适应大小代码实现
PC端相应简单些,浏览器对<video>标签的兼容还是很好的,但是想要在浏览器中当做Banner视频自动播放就必须设置这些属性来更好地实现;
<video muted autoplay="autoplay" loop="loop" x5-playsinline="true" playsinline="true" webkit-playsinline="true" x-webkit-airplay="allow" preload="auto" x5-video-player-type="h5" x5-video-player-fullscreen="true" > <source src="indexMove.mp4" type="video/mp4"> </video>
同上面方法设置后,PC网页就可以实现自动播放了。
移动端,好像这个代码也可以实现,至少ios13.4的safari浏览器可以那就先这样吧。
对ueditor上传视频代码改造
接下来就是如何把UEditor里面进行替换了,对UEditor编辑器目录进行查找,应该是ueditor.all.js这个文件
文件ueditor.all.js
将
str = '<video' + (id ? ' id="' + id + '"' : '') + ' class="' + classname + ' video-js" ' + (align ? ' style="float:' + align + '"': '') + ' controls preload="none" width="' + width + '" height="' + height + '" src="' + url + '" data-setup="">' + '<source src="' + url + '" type="video/' + ext + '" /></video>';
替换为
str = '<video' + (id ? ' id="' + id + '"' : '') + ' muted ' + ' autoplay="autoplay"' + 'loop="loop"' + 'x5-playsinline="true"' + 'playsinline="true"' + 'webkit-playsinline="true"' + 'preload="auto"' + 'x5-video-player-type="h5"' + 'x5-video-player-fullscreen="true>' + '<source src="' + url + '" type="video/' + ext + '" /></video>';
好像不太对,打开编辑器发现调用的是ueditor.all.min.js这个文件,那就继续修改。
文件ueditor.all.min.js
将
<video"+(g?' id="'+g+'"':"")+' class="'+k+' video-js" '+(f?' style="float:'+f+'"':"")+' controls preload="none" width="'+c+'" height="'+d+'" src="'+a+'" data-setup=""><source src="'+a+'" type="video/'+m+'" /></video>
替换为
<video"+(g?' id="'+g+'"':"")+' muted autoplay="autoplay" loop="loop" x5-playsinline="true" playsinline="true" webkit-playsinline="true" x-webkit-airplay="allow" preload="auto" x5-video-player-type="h5" x5-video-player-fullscreen="true"'><source src="'+a+'" type="video/'+m+'" /></video>
OK生效了。
结尾
这篇文章主要说的是UEditor的更换标签,如果是普通网页使用者使用以下代码就可以了。
<video muted autoplay="autoplay" loop="loop" x5-playsinline="true" playsinline="true" webkit-playsinline="true" x-webkit-airplay="allow" preload="auto" x5-video-player-type="h5" x5-video-player-fullscreen="true" > <source src="indexMove.mp4" type="video/mp4"> </video>
更新
忽略掉了CSS,重新补充下。
video height: auto; /* Make sure images are scaled correctly. */ max-width: 100%; /* Adhere to container width. */ iframe, embed border: 0; display: block; overflow: hidden; width: 100%; /* Make sure embeds and iframes fit their containers. */ embed, iframe, object margin-bottom: 1.5rem; max-width: 100%; iframe background-color: #FFFFFF; vertical-align: middle;
以上是关于PC端和移动端都支持视频video自动播放的代码的主要内容,如果未能解决你的问题,请参考以下文章