【求助】uniapp开发app在鸿蒙Next系统上录制视频会退出应用

【求助】uniapp开发app在鸿蒙Next系统上录制视频会退出应用

我在使用uniapp开发的APP中调用了录制视频功能,在安卓和iOS上运行正常,但在鸿蒙Next系统上点击录制按钮时应用会直接闪退。具体表现是:点击录制后无任何错误提示,应用直接退出。

尝试过的解决方法:

  1. 检查了权限设置,确保麦克风和摄像头权限已授权
  2. 测试了不同版本的鸿蒙Next系统,问题依旧存在
  3. 使用系统原生相机应用录制正常

想问下有没有人遇到过类似问题?可能是兼容性问题还是需要特殊适配?如果有解决方案请指教,谢谢!

2 回复

哈哈,这bug太调皮了!鸿蒙Next可能还没跟uniapp的录制功能“牵手成功”。试试更新HMS Core,检查权限设置,或者给个临时方案:先调用系统相机录制再回传。记得去uniapp社区蹲个官方补丁~

更多关于【求助】uniapp开发app在鸿蒙Next系统上录制视频会退出应用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next系统上,使用UniApp录制视频时应用退出,通常是由于系统兼容性或权限问题导致。以下是解决方案:

1. 检查系统权限配置

确保在 manifest.json 中正确声明摄像头和麦克风权限:

{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.CAMERA\" />",
          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />"
        ]
      }
    }
  }
}

2. 动态权限申请

在调用录制前,通过以下代码动态申请权限:

// 检查并申请权限
uni.authorize({
  scope: 'scope.camera',
  success: () => {
    this.startRecording();
  },
  fail: () => {
    uni.showModal({
      content: '需要摄像头和麦克风权限',
      showCancel: false
    });
  }
});

3. 使用兼容的API

鸿蒙Next可能对某些H5+ API支持不完善,建议改用UniApp封装的API:

uni.chooseVideo({
  sourceType: ['camera'],
  maxDuration: 60,
  success: (res) => {
    console.log('视频路径:', res.tempFilePath);
  },
  fail: (err) => {
    console.error('录制失败:', err);
  }
});

4. 排查系统兼容性

  • 更新HBuilderX到最新版本。
  • 在鸿蒙Next真机上测试,部分模拟器可能存在兼容问题。
  • 查看控制台日志,定位具体崩溃原因。

5. 备选方案

若仍存在问题,可尝试使用原生插件(如DCamera)或通过条件编译针对鸿蒙系统调整逻辑。

总结步骤:

  1. 确认权限配置正确;
  2. 动态申请权限;
  3. 使用稳定API;
  4. 更新开发环境;
  5. 考虑原生方案。

通过以上调整,通常可解决录制闪退问题。

回到顶部