uni-app x camera 使用前置镜头录像后崩溃

uni-app x camera 使用前置镜头录像后崩溃

操作步骤:

  • 按我说的做,或者使用你们的 hello uniapp x 的 app 去玩一遍

预期结果:

  • 不崩溃,正常设置前后置摄像头

实际结果:

bug描述:

uniapp x camera 使用前置镜头录像后崩溃,返回当前页面,也就是关闭当前页面,直接闪退

使用后置不出问题,只要使用前置 然后调用 startRecord 录制视频, 一定闪,自己的项目,以及官方的hello uniappx 均已测试

设置前置摄像头代码 使用变量方式 后设置 front 或者 直接设置 front 或者在组件上面直接设置 front,一样

以及,直接 device-position=“front” 基本无效,10次可能一次成功,


更多关于uni-app x camera 使用前置镜头录像后崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

再补充个bug,最新版本的bug,list-view 如果使用了 animate 动画,并设置 fill: ‘forwards’,会让其所有子组件的 transform rotate 失效,目前最新版的,正式版uniapp x 退回到 4.75 则正常

更多关于uni-app x camera 使用前置镜头录像后崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app x中camera组件的前置摄像头录制稳定性问题。主要原因是底层原生平台(Android/iOS)在前置摄像头录制时的硬件资源调度存在兼容性差异。

问题分析:

  1. 前置摄像头在启动录制时需要同时处理预览流和编码流,对硬件要求更高
  2. 部分设备前置摄像头不支持高分辨率录制
  3. 摄像头切换时的资源释放不及时可能导致内存泄漏

临时解决方案:

  1. 在调用startRecord前添加延迟:
setTimeout(() => {
    this.$refs.camera.startRecord()
}, 500)
  1. 降低录制参数:
this.$refs.camera.startRecord({
    quality: 'low',
    bitrate: 1000000
})
  1. 在页面onHide时手动销毁camera组件:
onHide() {
    this.$refs.camera.stopRecord()
    this.cameraContext = null
}
回到顶部