使用uni-app video播放视频内存溢出
使用uni-app video播放视频内存溢出
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:4.36
手机系统:Android
手机系统版本号:Android 5.1
手机机型:工业机主板
页面类型:vue
vue版本:vue3
打包方式:云端
项目创建方式:HBuilderX
### 操作步骤:
```video
loop = true
src = '/static/2.mp4'
配置
"runmode" : "liberate",
预期结果:
内存占用到固定峰值后不会再上涨
实际结果:
每次播放视频,占用的内存相比上次都会变大,GC也没用
bug描述:
video,循环播放同一个本地资源,配置了 “runmode” : “liberate” 之后,内存上涨
更多关于使用uni-app video播放视频内存溢出的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于使用uni-app video播放视频内存溢出的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的视频播放内存泄漏问题,在uni-app中比较常见。以下是可能的原因和解决方案:
- 内存泄漏原因:
- Android原生VideoView在循环播放时可能没有正确释放资源
- 视频解码器未正确回收
- 使用了liberate模式但底层实现存在内存管理问题
- 解决方案: (1) 尝试改用weex模式:
"runmode": "weex"
(2) 手动控制视频播放:
// 在每次播放结束时手动销毁并重新创建video实例
onEnded() {
this.videoCtx.stop()
this.videoCtx.destroy()
this.videoCtx = uni.createVideoContext('myVideo')
this.videoCtx.play()
}