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

Ouc*_*cam 9 javascript webcam google-chrome webrtc 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);
});
Run Code Online (Sandbox Code Playgroud)

在 Chrome 的控制台中,我得到:DOMException: Permission denied 经过多次谷歌搜索后,我没有找到任何最新的信息。我们究竟如何在 Chrome 中使用 JS 请求访问相机?

eaz*_*y_g 10

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

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


jib*_*jib 7

由于 MacOS Mojave,摄像头和麦克风需要操作系统权限

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

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

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


Ale*_*ist 5

Windows 11 - 麦克风隐私设置修复

从其他解决方案来看,似乎有多种问题可能导致此问题。对于我(Windows 11、Google Chrome)来说,此问题是由于 Windows 隐私设置中禁用了麦克风而导致的。

要修复此问题,请单击“开始”并搜索“麦克风隐私设置”。在弹出的控制面板中,将“麦克风访问”切换为打开。

  • 感谢$上帝我找到了这个! (2认同)