使用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中比较常见。以下是可能的原因和解决方案:

  1. 内存泄漏原因:
  • Android原生VideoView在循环播放时可能没有正确释放资源
  • 视频解码器未正确回收
  • 使用了liberate模式但底层实现存在内存管理问题
  1. 解决方案: (1) 尝试改用weex模式:
"runmode": "weex"

(2) 手动控制视频播放:

// 在每次播放结束时手动销毁并重新创建video实例
onEnded() {
  this.videoCtx.stop()
  this.videoCtx.destroy()
  this.videoCtx = uni.createVideoContext('myVideo')
  this.videoCtx.play()
}
回到顶部