现在是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:权限被拒绝 经过大量谷歌搜索,我还没有发现任何最新信息。我们到底如何使用JS请求Chrome中的摄像头访问权限?
答案 0 :(得分:2)
自MacOS Mojave起,相机和麦克风require OS permissions。
这适用于所有非Apple产品,包括Safari以外的所有浏览器。
检查系统偏好设置>安全和隐私>隐私>相机和麦克风。确保列出了Chrome,并且有一个复选框。
Chrome首次尝试访问它们时,您应该已经收到有关此操作的特殊操作系统提示。但是,如果它不小心被某种方式阻止了,就不会再提示您。
答案 1 :(得分:1)
就我而言,即使所涉及的站点未出现在麦克风设置页面上被阻止的站点下,该错误仍在我身上发生。
我必须去站点设置->查看所有站点中存储的权限和数据->查找我的站点->单击重置权限来解决此问题。
答案 2 :(得分:1)
就我而言,我没有意识到我所从事的项目正在添加安全标头,从而阻止使用麦克风的可能性:
Feature-Policy "microphone 'none'; geolocation 'none'"
答案 3 :(得分:0)
我在稍微不同的情况下遇到了同样的错误(在 Windows 10、Chrome 上):
我正在运行本地服务器并从以下位置访问我自己的网站
http://127.0.0.1:5500/
。
解决方案是从
http://localhost:5500/
相反。