Google chrome DOMException:系统拒绝 navigator.mediaDevices.getUserMedia 的权限

新手上路,请多包涵

现在是 2019 年 11 月,此 JavaScript 代码适用于 FireFox(70.0.1(64 位))、Safari(13.0.2(15608.2.30.1.1))、Opera(版本:65.0.3467.48)、Windows Chrome 版本70.0.3538.77(64 位),此代码有效。但不适用于 MacOS Google Chrome(版本 78.0.3904.108(官方构建)(64 位)):

 navigator
.mediaDevices
.getUserMedia({video: true, audio: true})
.then(stream => {
    console.log("success!")
})
.catch(e => {
    console.log("e: ", e);
});

在 Chrome 的控制台中,我得到: DOMException: Permission denied 经过大量谷歌搜索,我没有找到任何最新信息。我们究竟如何使用 JS 在 Chrome 中请求摄像头访问权限?

原文由 Morris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

由于 MacOS Mojave,相机和麦克风 需要操作系统权限

这适用于所有非 Apple 产品,包括 Safari 以外的所有浏览器。

检查系统偏好设置>安全和隐私>隐私>摄像头和麦克风。确保 Chrome 已列出并且有一个复选框。

你应该在 Chrome 第一次尝试访问它们时得到一个特殊的操作系统提示。但是,如果它不小心以某种方式被阻止,您将永远不会再收到提示。

原文由 jib 发布,翻译遵循 CC BY-SA 4.0 许可协议

就我而言,我没有意识到我正在从事的项目正在添加一个安全标头,阻止使用麦克风的可能性:

Feature-Policy "microphone 'none'; geolocation 'none'"

原文由 eazy_g 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题