微信H5同层播放器以及视频自动播放

1 篇文章 0 订阅

iOS之前已经解决了视频播放默认全屏,且浮在页面最顶端的问题

playsinline

webkit-playsinline

这样就可以在视频之上进行一些操作,实现诸如弹幕、自定义播放控件等的效果。
但是安卓端却一直迟迟没有一种比较完美的解决方案,直到腾讯规范了H5同层播放器
在安卓端启用H5同层播放器也是十分的简单:

x5-video-player-type="h5"

同时也可根据项目需要选择是否开启全屏的同层播放器:

x5-video-player-fullscreen="true"

有的时候因为视频的尺寸问题,设置全屏以后横向或者纵向会留有空边,此时再配合css属性:

object-fit:fill

这个属性是设置替换元素的内容应该如何适应到其使用的高度和宽度确定的框。

另外近期有一种很流行的H5模式:一进入页面是一段很酷炫的视频,视频播放完毕后会有一个页面,上面承载一些业务需求的模块。这种H5大多数需要用到视频自动播放的功能,同样的,在iOS端已经有很多种hack方法解决(各种事件监听),网上有很多方法,这里记录了目前可用的两种。

第一种:使用微信的wx.ready事件,首先要引入一个js文件

<script src=" https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

页面里部署js代码:

function autoPlayAudio() {
    wx.config({
        // 配置信息, 即使不正确也能使用 wx.ready
        debug: false,
        appId: '',
        timestamp: 1,
        nonceStr: '',
        signature: '',
        jsApiList: []
    });
    wx.ready(function() {
        document.getElementById('media').play();//video标签id=media
    });
}
autoPlayAudio();


第二种:监听WeixinJSBridgeReady事件

var ua = navigator.userAgent;
var vi = document.getElementById('media'); document.addEventListener("WeixinJSBridgeReady", function onBridgeReady() {
    if (ua.indexOf("iPhone") > 0) {
        vi.play();
    } else if (ua.indexOf("Android") > 0) {
        vi.play();
        if (vi.currentTime === 0) {
            alert('1');
            //这里的定时器你可以不需要,也可以变成你需要的事件,而且也不一定在这个位置,主要是里面的play
            vi.play();
        }
    }
});


然而不幸的是,安卓端目前还没有稳定可用的视频自动播放方案,所以在设计时需考虑添加一个播放按钮,或者将播放事件绑定在touchstart上来近似的达到想要的效果。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值