写了一年小程序,每天接受数万付费用户的考验,踩过小程序的坑数不胜数。先写一下视频篇,写一些会影响到用户正常看视频功能和影响业务主体流程的坑。

1.一些低端设备无法播放高清视频 1080p

需要接入转码,提供2种分辨率的视频。如果检测到播放高清视频报错,自动切入低清视频。也有可能高清视频播放不出来,也检测不到报错,所以还需要一个按钮来手动切换标清视频。问题现象是在有些设备直接播不出来,在有些设备上是有声音但黑屏无图像,可能会报一些类似MEDIA_ERR_DECODE(-4003,-1)这样的报错。

2.同层渲染问题

小程序video已经支持同层渲染,但是在某些版本微信某些设备上,比如某些三星设备,同层渲染可能失效,导致在视频上面的按钮看不到。所以对于一些重要的按钮功能。可以做一些彩蛋式的操作:比如连续点5下屏幕,触发切换标清的逻辑。避免按钮没显示出来用户播放不了视频也切换不了标清。

3.视频播放到一半直接调用ended事件

可以加一个检测,如果调用ended事件的时候,最大播放进度离视频长度还有一段距离。可以尝试触发切换标清的逻辑接着播放。

4.iOS视频播放黑屏

iOS用户偶现播放视频的时候会出现播放不了黑屏,可能会报MEDIA_ERR_NETWORK。这个时候把视频的链接给用户,直接在微信中播放大概率也播放不了。 这个问题很大程度跟用户网络有关系,可以切换网络或者还原网络试一下,有时候会生效。比如国外播放我们国内的视频,就有很多用户会出现问题。

5.iOS播放结束自动重播不调用ended事件

iOS用户偶现播放到结束的时候不会调用ended事件,而是会回到开头,重新播放。对于视频播放结束之后需要做一些操作的程序,就要做一些特殊的检测,比如当前的最大进度已经到了视频长度后,进度又突然变到了0。就可以手动结束视频播放,调用结束回调函数。

6.视频卡在最后几秒钟

部分Android用户视频快结束的时候会一直卡在最后几秒钟过不去。针对这种情况,在播放快要结束的时候增加一个定时器。到定时器触发的时候,视频还没有调用ended回调,就手动去调用一下。

7.其他报错

用户设备存储空间剩的很少的时候,视频播放也有可能会有问题,可能会有MEDIA_ERR_DECODE(-4999,-1)这样的错误,经常出现在一些华为的机器上。实际上在设备存储空间很少的时候,小程序的其他很多功能都会受到影响,包括网络请求,资源下载等。
还有某些时候视频没有声音之类的,可以用重启大法。

结语

实际填坑的时候根据业务场景可能要考虑的更多,比如拖动进度条之类的会造成的影响之类。
后续还会更新微信小程序其他方面的坑,原则还是只提供大概思路。

github地址:微信小程序填坑 视频篇

微信小程序填坑 视频篇相关推荐

  1. 微信小程序填坑篇 2

    微信小程序开发的时候,很多接口都不太能信任,需要作一些额外的兜底处理.保证程序在什么情况下都能尽可能健康的运行. 也要有一套健全的异常收集反馈机制,方便迅速发现问题解决问题. 小程序生态的异常监控体系 ...

  2. 微信小程序填坑之路(六):wx.getUserInfo 接口的变动与使用

    问题 在微信小程序开发中,获取用户信息是经常会用到的!在之前,我们直接调用wx.getUserInfo接口,就可以直接获取用户的信息.然而为了安全考虑,从2018年4月30号开始,wx.getUser ...

  3. 微信小程序填坑之路其一:wx.request发送与服务端接受

    一.序言 应公司要求要求,要用小程序开发一个信息录入系统.没办法只能听话来填坑. 先介绍一下环境:客户端--小程序:服务端--java:数据库--mysql:服务器--centos7 需求:客户端输入 ...

  4. 微信小程序填坑之路(三):布局适配方案(rpx、px、vw、vh)

    因为小程序是以微信为平台运行的,可以同时运行在android与ios的设备上,所以不可避免的会遇到布局适配问题,特别是在iphone5上,因为屏幕尺寸小的缘故,也是适配问题最多的机型,下面就简单介绍几 ...

  5. Java小程序post如何传参,[Java教程]微信小程序填坑之路其一:wx.request发送与服务端接受...

    为了有一个接口地址,花了一个月时间去买了服务器.注册了域名.部署了一下.备案-得到了https的合法域名. 首先这个请求的url必须是https,老版本的怎样不是很清楚,据说可以用http?想办法弄一 ...

  6. 微信小程序填坑:上传头像;wx.chooseImage,wx.uploadFile

    因为wx.chooseImage,wx.uploadFile的组合十分常见,并且极其容易遇到坑:请作者来检查一下是否有问题,因为我看到原文底下有一堆不明代码... 上传头像, 使用wx.chooseI ...

  7. 微信小程序填坑之路(一):text空格符号以及省略号

    1.text的空格符 首先需要设置<text> 控件的decode值 decode可以解析的有  < > & '     值 说明 ensp 中文字符空格一半大小 em ...

  8. 微信小程序填坑之路(三)--上传头像

    上传头像, 使用wx.chooseImage({})后 在使用wx.uploadFile({})结合起来使用. 示例代码: Page({data: {src: "../../image/ph ...

  9. 微信小程序填坑之page[pages/XXX/XXX] not found.May be caused by

    当页面出现   page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add page route in app.json.2. I ...

最新文章

  1. 基于SSH实现模特人才招聘网站
  2. python引用文件 mode写在后面还是前面,python3 文件操作常用mode参数用法详解
  3. MONGODB 与sql聚合操作对应图
  4. Objective-C路成魔【11-多态性、动态类型和动态绑定】
  5. Linux下使用ps命令来查看Oracle相关的进程
  6. 从优秀到卓越 pdf_演讲口才培训:演讲能力是卓越领导者需要具备的能力
  7. 54部经典国外动画片---送给70-80年代的朋友
  8. 技术至简-10: CPRI链路速率、5G小区带宽与AxC映射关系快速查询表
  9. 阿里云iot事业部一面面经
  10. 第一个Python程序--Python
  11. 研发人员如何开展职业规划
  12. VS code上如何实现一键生成代码片段
  13. 编写算法将二叉树中所有结点的左、右子树相互交换
  14. 单幅图像去雾java_一种基于深度学习的单幅图像去雾方法与流程
  15. 潇洒郎:批量压缩大师——python实现文件批量命名+批量加密码——GUI软件——打包exe文件
  16. 超全Altium Designer16 总结--Altium Designer
  17. c语言求平均值 保留三位小数,Excel求平均值时,保留小数位数与参与求平均值的个数有关...
  18. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...
  19. The server encountered an internal error () that prevented it from fulfilling this requet异常解决
  20. AlphaControls 控件 编辑皮肤 变更Glyphs控制符号

热门文章

  1. 解决biblatex中作者显示全名的问题
  2. python 1-100days
  3. 浙江省机电工程师职称评审条件及流程
  4. 视频教程-SAS数据分析:从入门到企业实战-数据挖掘
  5. 参与360私有化的公司股价暴涨 多家借壳公司却遭遇政策难题
  6. 苹果股价上月大跌25.6美元 几乎抹去前两个月涨幅
  7. 大工17春计算机基础,[方案]大工10春《计算机基础》辅导资料五
  8. 【百度AI语音合成】会员到访门店语音提醒
  9. 课程设计c语言拼写字母,C语言课程设计电子英汉词典.doc
  10. 【高等数学笔记】证明:闭包是包含集合的最小的闭集