小程序录制功能踩坑记录

  • 简言

刚完成了一个很“简单”的功能,简单是因为客户的要求简单,简单到可以概括成一句话:用微信小程序实现视频录制功能。

  • 实操

根据这个“简单”的需求,接下来开启准备工作。经查询,小程序提供的录像有三种,chooseVideo,CameraContext以及livepusher。当时想着只是个录制,与直播应该没啥关系,直接忽略掉livepusher,从简单的chooseVideo入手,仔细一看,最大支持60s的录制,这不行,客户要求两分钟内的录制,而且在安卓机上必须长按才能录制,果断pass掉。接下来踩坑CameraContext。关于这个部分,另起一段才行。

前序,本人使用的是安卓机,故一直基于安卓机测试。先说CameraContext的录制时长,最大30s。嗯。。。对于录制2分钟的情况可以采取切片的方式,即录制二三秒后,立即结束,再立即开始下一段的录制。美好的思路需要实操来证实,嗯。。。

若干小时later~~~~

发现时间切割点会丢数据,1~3秒不等,四五段衔接的话会丢10s以上,所以赶紧跟客户确认能接受的丢失时长,并建议客户录制1分钟内的视频,丢3秒左右可否接受。经客户确认,可以接受。接下来似乎看起来可以完工了。然而接下来的ios机泼了一盆巨大的冷水,闪退!!!!点击查看,单段录制15s以上闪退的概率超过50%,这是不可接受的,分段10s左右录制的话,一分钟的视频会丢掉10s左右,这也是不可接受的。看来只能换个思路了,webrtc,嗯,,,这个可以连续录制而且不间断,在小程序跳到H5页面,录制完成之后,把数据提交上去再跳回来即可。

若干小时later~~~~

安卓机上顺利的完成了录制功能,缺点是录制长时间的视频上传比较慢,不过勉强还可以接受。接下来就开放让大家测试功能,又是IOS,不支持webrtc!!!!这下恨死ios了,但却无可奈何,就跟TX一样,只敢吐槽,别无他法。看来只能采用ilve-pusher了,经过各种资质等等操作

若干小时later~~~~

疯狂吐槽开发文档之后~~~~

终于完成了功能的开发,在此期间,我算了一笔账:加了N久的班,掉了666根头发

  • 结尾

宁愿花个一周分析技术,也不要及时的动手,你的经验来自于采坑,但是你的睿智可能会免去采坑,此外,php依然是世界上最好的语言

 

原文地址:https://www.cnblogs.com/danielee/p/13218585.html