uni-app live-pusher 组件 关闭摄像头的情况下操作tabBar隐藏就会闪退 打开摄像头隐藏则不会闪退

uni-app live-pusher 组件 关闭摄像头的情况下操作tabBar隐藏就会闪退 打开摄像头隐藏则不会闪退

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 10
HBuilderX 正式
HBuilderX版本 4.45
手机系统 Android
手机版本号 Android 15
手机厂商 小米
手机机型 23113RKC6C 红米K70
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

没出异常提示,直接闪退

预期结果:

希望2个组件不冲突

实际结果:

希望2个组件不冲突

bug描述:

\pages\index\index.vue
关闭摄像头后 执行 aa()
<button class=“btn” @click=“aa”>测试显示隐藏</button>

测试.zip


更多关于uni-app live-pusher 组件 关闭摄像头的情况下操作tabBar隐藏就会闪退 打开摄像头隐藏则不会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

还发现一个问题,用v-if false 销毁了live-pusher 然后切换APP到后台,在切回前台他会持续在调用录音权限

更多关于uni-app live-pusher 组件 关闭摄像头的情况下操作tabBar隐藏就会闪退 打开摄像头隐藏则不会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app live-pusher组件在Android平台上的兼容性问题。当摄像头关闭时操作tabBar隐藏会导致应用闪退,而开启摄像头时则正常。

问题原因:

  1. live-pusher组件在Android平台上的底层实现存在资源释放问题
  2. 当摄像头关闭时,组件内部状态处理不当
  3. 与tabBar的显示/隐藏操作产生冲突

临时解决方案:

  1. 在操作tabBar前先确保live-pusher组件完全销毁
  2. 或者保持摄像头开启状态再进行tabBar操作

建议在官方修复前采用以下代码处理:

function aa() {
  if(!cameraStatus.value) { // 摄像头关闭状态
    // 先重新初始化live-pusher组件
    that.$refs.livePusher.stop()
    that.$refs.livePusher.start()
    setTimeout(() => {
      uni.hideTabBar()
    }, 300)
  } else {
    uni.hideTabBar()
  }
}
回到顶部