快应用开发video坑点

做惯了面向chrome的vue开发,以及成熟度还不错的一端编译多端发布框架uni-app的开发,在浅尝了weex等vue的native混合开发后,我以为混合开发已经是对前端来说坑最多的了,但是直到今天我才知道,too young too simple,什么weex,什么antd vue的坑都不算啥,快应用才是真的天坑,文档简陋,生态差,平台又多,一家一个样,貌合神离,明明联合搞了个快应用,但是统一度很差,问题最多的就是华为,特殊性非常强。小米、oppo、vivo基本还不是太大,但是华为就是各种意想不到的问题。

最近开发快应用,用到了video组件,着实让我头疼到想提桶跑路。出了问题硬着头皮找解决办法,可查阅资料除了官方文档其他啥讨论区都没有,搜索引擎搜了个寂寞。

video特性

  • (未解决)全屏播放到最后一帧,如果后续无动作,页面会被放大变模糊,其他平台无此问题
  • 华为video配置enablevideofullscreencontainer="true"添加自定义内容时,fullscreenchange回调不执行,可以通过全屏执行focus回调,退出全屏执行blur回调的特性避开缺陷,但是有一定失败率
  • 使用enablevideofullscreencontainer="true"使全屏播放后可以展示自定义内容,其他平台不是video的兄弟节点,是父div的下兄弟节点,也可以在视频全屏下展示;但是华为全屏模式下只能展示video的兄弟节点。
<div enablevideofullscreencontainer="true">
		<video></video>
    <div id="1"></div>
</div>
<div id="2"></div>

 id为1的块在全屏模式下可看,id为2的块在华为设备全屏状态下不可见

  • 非华为竖屏全屏后如果播放内容比较小,上下留的黑色空白是透明的,可以看到全屏下面的内容。而华为的底部填充是非透明的
  • 全屏播放状态下即使src发生变化,点击播放按钮还是播放老视频,我用黑色遮罩层搭配手动去退出全屏然后视频prepared的回调里重新进入全屏的方式避开了这个问题。
  • 华为video的标签属性autoplay=true不写就无法主动用start()方法播放,
  • 华为配置了autoplay=true后finish回调在结束时会调2遍
  • 页面onShow生命周期执行时(因广告或个人原因导致页面重新展示)如果vide处于播放完毕的状态会再走一遍finish生命周期

  • 部分手机视频资源切换的时候,播放的秒数会被缓存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值