uni-app 页面使用加载多个video后机子崩溃闪退

背景:

公司产品脑袋一拍,我们要做一个类似uc视频列表播放的东东

解决方法:

:custom-cache=”false”

<video :custom-cache="false" :autoplay="autoplayFn()" src="xxxx.mp4" controls></video>

(闪退到我自己手机都差点要报工伤)(╯‵□′)╯︵┻━┻

问题解决思路:

1.查小程序频繁闪退,先排除机子原因(重启),其他页面不闪退,只有这样页面闪退,大方向是代码问题。

2.查询小程序闪退的原因,这里搜了一下,大概率是内存问题,onshow方法下加入监听,证明猜想

onShow(){
    wx.onMemoryWarning(function () {
            console.log('onMemoryWarningReceive')
        })
}

3.排除有可能引起内存问题的代码,问题依然存在

4.屏蔽template中可能会影响的代码,锁定video引起的。

5.搜索video相关的问题,发现video卡顿的解决方案中有提到一个属性custom-cache,查询这个属性到底做了什么。

https://developers.weixin.qq.com/community/develop/doc/0008aa45d149a0de37b775d7952000

一般缓存为一级缓存、二级缓存、和自定义缓存,换而言之custom-cache="{{false}}"就是不使用自定义缓存的意思。为什么用了视频组件会卡loading加载不出来呢,可能是因为微信设置的自定义缓存的位置有容量限制,因此将它关闭了以后会自动使用系统缓存,可能就没有这个问题了。

6.怀疑这里的内存问题和这个有关;

7.验证,并证实了自己的猜想。


发表评论

电子邮件地址不会被公开。 必填项已用*标注