加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

html5 移动端视频video的android兼容(去除播放控件、全屏)

发布时间:2020-03-28 11:26:22 所属栏目:编程 来源:站长网
导读:副问题#e# android下html5的视频播放一向是前端兼容的重灾区,各类体验差,被诟病已久。但之前的故宫穿越H5,和吴亦凡入伍H5,操作的视频技能,貌似又给人一种新面孔。 前段时刻做某项目,刚好也是一个相同视频全屏的,下面跟各人分享下经验的坑和填坑的办

var video = document.querySelector('#mainvideo'); var videobox = document.querySelector('.videobox'); //播放时改变外层包裹的宽度,使video宽度增进, //响应高度也增进了,播放器控件被挤下去,共同overflow:hidden //控件看不见也触摸不到了 var setVideoStyle = function (){ videobox.style.width = '120%'; videobox.style.left = '-10%'; video.style.width = '100%'; }

虽然上面这样写参杂了一些需求逻辑,也可以直接样式表就width:120%,可能更大;这个按照本身的必要来,但根基思绪就是将播放器控件顶出视窗之外,到达一种‘去除’、‘消散’的结果。连‘小窗’字样也被顶出去了,用过android或测试过的同窗都知道点了小窗后会奈何....(原版的纵然去掉了播放器,但小窗字样还在,不能算完全的潜匿播放控件吧)

响应发生的一些题目的办理步伐:

1,视频被放大了,画面会被截掉一部门怎么办?

这个可以在视频输出的时辰双方和下边留一些留白,即留白可以没用画面玄色底,但又属于视频尺寸的一部门,放视频放大后,将主体画面置满视窗,被挤到表面都是留白的即可。

2,视频播放完毕后会中间自动呈现播放控件按钮

假如确实不想在播放完是呈现一个按钮,哪怕只有零点几秒,就把视频remove掉,可以行使timeupdate监听视频播放,用video.duration-video.currentTime的差值判定是否将近竣事了,在竣事前零点几秒提前remove掉。

3,要是不是全屏视频怎么搞?

可以,思绪是一样的,将视频控件顶出外层的包裹层,操作overflow:hidden。只是全屏的外层包裹是body罢了。

哦了,终于可以搞一个全屏视频伪装的对象了。

2017-03-21补
跟着时刻的变迁,装备和技能的更新,本着不坑害同胞的心,认真任更新下照旧有须要的
咱们照旧从上面的4个要点来说ios和android吧

全屏处理赏罚;

自动播放;

播放节制;

潜匿播放控件;

增补--全屏处理赏罚

ios加playsinline属性,之前只带webkit前缀的在ios10往后,会吊起体系自带播放器,两个属性都加上根基ios端都可以担保内敛到赏识器webview内里了。假如仍有个体版本的ios会吊起播放器,还可以引用一个库iphone-inline-video(详细用法很简朴看它github,这里不先容了,只需加js一句话,css加点),
github地点是https://github.com/fregante/iphone-inline-video,加上playsinline webkit-playsinline这两个属性和这个库根基可以担保ios端没有题目了(不外亲测,只加这两个属性不引入库仿佛也是ok的,至今没有在ios端微信没有呈现题目,假如你要兼容uc可能qq的赏识器提议带上这个库),
最后先容个新的x5-video-player-type="h5"属性,腾讯x5内核系的android微信和手Q内置赏识器用的赏识器webview的内核,行使这个属性在微信中视频会有差异的示意,会泛起全屏状态,貌似播放控件剥去了,至少加了这个属性后视频上层可以有其他dom元素呈现了(非腾讯白名单机制的一种处理赏罚法子),

<video id="mainvideo" src=http://www.jb51.net/html5/"test.mp4" playsinline webkit-playsinline></video>

增补--自动播放

android始终不能自动播放,不多说。值得一提的是经测此刻ios10后版本的safari和微信都不让视频自动播放了(顺带音频也不能自动播放了),但微信提供了一个变乱WeixinJSBridgeReady,在微信嵌入webview全局的这个变乱触发后,视频繁可以自动播放,这个应该是此刻在ios端微信的视频自动播放的较量靠谱的方法,其他如手q可能其他赏识器,提议就引导用户出发触屏的举动操纵出发较量好。

//也可以在这个变乱触发后播放一次然后停息(这样往后视频会处于加载状态,为后头的流通播放做筹备) document.addEventListener("WeixinJSBridgeReady", function (){ video.play(); video.pause(); }, false)

增补--播放节制

关于节制,这里仅增补一点吧,就是当第一次播放视频的时辰ios端,假如收集慢,视频从开始播到能揭示画面会有短暂的黑屏(处理赏罚视频源数据的时刻),为了停止这个黑屏,可以在视频上加个div浮层(可以一个假的视频第一帧),然后用timeupdate要领监听,视屏播放及有画面的时辰再移除浮层

video.addEventListener('timeupdate',function (){ //当视频的currentTime大于0.1时暗示黑屏时刻已过,已有视频画面,可以移除浮层(.pagestart的div元素) if ( !video.isPlayed && this.currentTime>0.1 ){ $('.pagestart').fadeOut(500); video.isPlayed = !0; } })

增补--潜匿播放控件

听说腾讯的android团队的x5内核团队铺开了视频播放的限定,视频不必然挪用它们谁人备受诟病的视频播放器了,x5-video-player-type="h5"属性这个属性仿佛就有点谁人意思,固然体验照旧有点...(导航栏也会整理)但至少播放器控件没有了,上层可以浮div可能其他元素了,这个照旧值得一提。
尚有一点值得说的是,带播放器控件的潜匿,

<div class="videobox" ontouchmove="return false;"> <video id="mainvideo" src=http://www.jb51.net/html5/"test.mp4" x5-video-player-type="h5" playsinline webkit-playsinline></video> </div>

好比这个videobox在android下潜匿,只用display:none貌似照旧不可的,但加个z-index:-1,配置成-1就可以到达潜匿播放器控件的目标了。这个经测可用且好用,可以一试。

到此这篇关于html5 移动端视频video的android兼容(去除播放控件、全屏)的文章就先容到这了,更多相干html5 android兼容视频内容请搜刮剧本之家早年的文章或继承赏识下面的相干文章,但愿各人往后多多支持剧本之家!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读