android视频播放处理,安卓版微信视频播放全屏处理

问题

在安卓版微信里,video在播放的时候,如果在没有做任何处理的情况下,微信会全屏播放你的视频,会严重影响一些例如直播之类的边看视频边交互的H5应用(注:在iOS里可以通过playsinline(iOS10之前需要写成webkit-playsinline)这个属性来让视频不默认全屏播放)。示例如下:

代码:

测试微信视频

video {

width: 300px;

height: 200px;

}

JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言[4]。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化[4]。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言[5],是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。

图片:

未播放时:

984b145b07d3?utm_campaign=maleskine&utm_content=note&utm_medium=writer_share&utm_source=weibo

未播放时

播放时:

984b145b07d3?utm_campaign=maleskine&utm_content=note&utm_medium=writer_share&utm_source=weibo

播放时

可以看到第二个图里播放视频的时候下面的文字就不见了,会严重影响用户体验,不只是微信,很多国产浏览器都会被视频劫持播放...哎!用原生的不好吗?

解决方法

和微信达成某种py交易,据我发现有些视频网站在安卓版微信里是可以内联播放的,和iOS上保持一致。(

还好微信还是留了些后路,下面我来说一下第二种方法的具体操作。

具体操作

注意看x5-video-player-type这个属性以及x5videoenterfullscreen、x5videoexitfullscreen这两个事件

x5-video-player-type可以让视频播放的时候,视频上可以有其他元素,那么我们可以在视频播放的时候把视频作为整页面的背景其他元素放在视频之上。

css中video的object-fit以及object-position可以将真正的视频放在容器该有的位置。

好了有了以上的东西,直接上代码看效果吧(为了方便我这里要引入一下早已被大佬抛弃的jQuery):

完整代码

测试微信视频

html, body {

margin: 0;

padding: 0;

height: 100%;

}

video {

width: 100%;

height: 211px;

}

video.android-full {

position: relative;

height: 100%;

object-fit: contain;

object-position: left 0 top 0;

}

video.android-full::-webkit-media-controls-enclosure {

-webkit-appearance: none;

position: absolute;

top: 166px;

}

.desc.android-full {

position: absolute;

top: 211px;

}

src="https://www.seastart.tv/introduce.mp4"

x5-video-player-type="h5"

playsinline

webkit-playsinline

controls>

JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言[4]。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化[4]。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言[5],是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。

var $video = $('video');

var $desc = $('.desc');

$video[0].addEventListener('x5videoenterfullscreen', function() {

$video.addClass('android-full');

$desc.addClass('android-full');

});

$video[0].addEventListener('x5videoexitfullscreen', function() {

$video.removeClass('android-full');

$desc.removeClass('android-full');

});

效果图:

984b145b07d3?utm_campaign=maleskine&utm_content=note&utm_medium=writer_share&utm_source=weibo

效果图

可以看到才有这个方法可以算是比较好的处理安卓版微信这个问题,虽然还有些瑕疵,不过也还行:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值