移动端HTML5<video> 浏览器劫持视频播放 视频激活播放后强制全屏 视频无法被其他元素覆盖

1 篇文章 0 订阅
1 篇文章 0 订阅

浏览器劫持视频播放、视频无法被其他元素覆盖

Html5 video 多媒体标签

<video
        id="loginVideo"
        muted
        autoplay
        loop
        :src="require('./assets/login.mp4')"
></video>

登录页加入视频作为背景,加入了video标签,设置定位,层级,谷歌浏览器调试完美展示,由于做的是H5网页,移至手机上查看(红米A8)。手机端谷歌浏览器打开登录页,登录背景视频正常且完美显示,符合需求,接着用手机自带浏览器同样的操作,在跳转登录页时,视频被劫持并全屏显示,登录页登录功能失效了。。。QQ浏览器,UC浏览器都出现了视频被劫持并全屏播放的问题(还有另外的几个浏览器就没有去试了,火狐,Opera,Edge)

经查询资料发现:

国内浏览器会对视频做拦截并全屏置顶展示

x5同层播放器

移动端浏览器中的video元素是比较特别的,早期无论是在iOS还是Android的浏览器中,它都位于页面的最顶层,无法被遮盖。后来这个问题在iOS下得到了解决,但是Android的浏览器则问题依旧。X5是腾讯基于Webkit开发的渲染引擎,它提供了一种名叫「同层播放器」的特殊video元素以解决遮盖问题。只要给普通的video元素加上X5的自定义属性 x5-video-player-type,就可以调用同层播放器。

浏览器劫持视频播放
在这里插入图片描述

于是,在video标签中添加 : x5-video-player-type=“h5” 后,在QQ浏览器中登录页的视频不会被拦截全屏显示,但是UC浏览器和红米手机自带的浏览器中仍然会被拦截全屏播放。

<video
        id="loginVideo"
        muted
        autoplay
        loop
        webkit-playsinline // 这个属性是ios 10中设置可以让视频在小窗
        内播放,也就是不是全屏播放
        playsinline // IOS微信浏览器支持小窗内播放
        x5-playsinline 
        x5-video-player-type="h5" // 不要与x5-playsinline同时存在
        x-webkit-airplay="allow"
        x5-video-player-fullscreen="" // 全屏设置,设置为 true 是防
        止横屏
        x5-video-orientation="landscape|portrait" // 播放器的方向,
         landscape横屏,portraint竖屏,默认值为竖屏
        :src="require('./assets/login.mp4')"
></video>

额。。。。最后试了试canvas做,简单调试了一下,好像结果也不理想,登录页后面的背景video视频层级问题无法解决。最后还是使用GIF背景图充当视频。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在iOS上,<video>标签默认是不支持自动全屏播放的。但是,你可以通过以下方式实现自动全屏播放,并且在横屏时自动切换到横屏模式: 1. 在<video>标签中添加webkit-playsinline属性,这将允许视频在页面内播放而不是全屏播放。 ``` <video src="video.mp4" webkit-playsinline></video> ``` 2. 为了实现自动全屏播放,你需要使用JavaScript来控制<video>标签。在页面加载完成后,使用以下代码将视频播放: ``` var video = document.querySelector('video'); video.play(); ``` 3. 为了在横屏时自动切换到横屏模式,你需要在JavaScript中监听屏幕旋转事件(orientationchange),并在事件发生时修改<video>标签的样式,将其宽度设置为屏幕的高度,将其高度设置为屏幕的宽度,同时还需要将页面的viewport元标签设置为允许横屏显示: ``` //监听屏幕旋转事件 window.addEventListener("orientationchange", function() { if (window.orientation == 90 || window.orientation == -90) { //横屏时将视频全屏,并修改viewport元标签 document.querySelector('video').style.width = window.innerHeight + 'px'; document.querySelector('video').style.height = window.innerWidth + 'px'; document.querySelector('meta[name=viewport]').setAttribute('content', 'width=device-height, initial-scale=1.0'); } else { //竖屏时将视频恢复原始尺寸,并修改viewport元标签 document.querySelector('video').style.width = '100%'; document.querySelector('video').style.height = 'auto'; document.querySelector('meta[name=viewport]').setAttribute('content', 'width=device-width, initial-scale=1.0'); } }); ``` 这样就可以实现iOS上<video>标签的自动全屏播放,并且在横屏时自动切换到横屏模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值