uni-app 项目运行时自动打开chrome浏览器 执行 navigator.mediaDevices.getUserMedia 必现崩溃

uni-app 项目运行时自动打开chrome浏览器 执行 navigator.mediaDevices.getUserMedia 必现崩溃

开发环境 版本号 项目创建方式
Mac macOS Sonoma 14.4.1 HBuilderX

操作步骤:

navigator.mediaDevices.getUserMedia({video:true,audio:true}, ()=>{}, ()=>{})

预期结果:

正常采集摄像头麦克风流

实际结果:

浏览器崩溃

bug描述:

使用hbuilder 运行项目,自动打开chrome浏览器,执行navigator.mediaDevices.getUserMedia必现崩溃,复制地址手动打开chrome,运行则不会崩溃

更多关于uni-app 项目运行时自动打开chrome浏览器 执行 navigator.mediaDevices.getUserMedia 必现崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

应该是macos没有授权摄像头权限给hbuilder

更多关于uni-app 项目运行时自动打开chrome浏览器 执行 navigator.mediaDevices.getUserMedia 必现崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 Uni-app 项目运行时,如果自动打开 Chrome 浏览器并执行 navigator.mediaDevices.getUserMedia 时出现崩溃问题,可能是由于以下原因导致的。以下是一些可能的原因和解决方案:


1. Chrome 浏览器权限问题

  • getUserMedia 需要访问摄像头或麦克风,如果浏览器没有正确获取权限,可能会导致崩溃。
  • 解决方案:
    • 确保 Chrome 浏览器允许访问摄像头和麦克风。
    • 在 Chrome 地址栏左侧点击锁图标,检查权限设置。
    • 如果是在本地开发环境中,确保使用 https 或者 localhost,因为 getUserMedia 在非安全上下文(如 http)中可能会被阻止。

2. Chrome 浏览器版本问题

  • 某些旧版本的 Chrome 浏览器可能存在 getUserMedia 的兼容性问题。
  • 解决方案:
    • 更新 Chrome 浏览器到最新版本。
    • 检查浏览器的控制台是否有错误日志。

3. Uni-app 配置问题

  • Uni-app 在 H5 环境下默认不会自动处理 getUserMedia 的调用。
  • 解决方案:
    • 确保在 pages.jsonmanifest.json 中正确配置了 H5 的相关设置。
    • 如果是通过插件或自定义代码调用 getUserMedia,确保代码逻辑正确。

4. 硬件或驱动问题

  • 如果摄像头或麦克风驱动有问题,可能会导致 getUserMedia 调用失败。
  • 解决方案:
    • 检查设备管理器,确保摄像头和麦克风驱动正常。
    • 尝试在其他应用中使用摄像头和麦克风,确认硬件是否正常工作。

5. 代码问题

  • 调用 getUserMedia 的代码可能存在错误,导致崩溃。
  • 解决方案:
    • 检查代码逻辑,确保正确调用 getUserMedia
    • 示例代码:
      navigator.mediaDevices.getUserMedia({ video: true, audio: true })
          .then(stream => {
              console.log("获取媒体流成功", stream);
          })
          .catch(error => {
              console.error("获取媒体流失败", error);
          });
回到顶部