Firefox 从不解析 navigator.mediaDevices.getUserMedia()
Firefox never resolving navigator.mediaDevices.getUserMedia()
我正在尝试使用新的基于 Promise 的 WebRTC/Media 工具,以便在用户允许访问摄像头 and/or 麦克风时获得反馈,如此处所述 https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
以下代码片段,简单地注入了浏览器的开发人员工具,在授予访问权限时从未在 Firefox 上实现 Promise,但在 Chrome 上它按预期工作。
(使用 Firefox 53 32 位、Chrome 59 64 位测试)
navigator.mediaDevices.getUserMedia({
"audio": true,
"video": true
})
.then(() => console.log("OK!"))
.catch(() => console.log("NOPE"))
Promise 似乎永远悬而未决。
重现步骤:
- 打开任何 https 加密页面(因此 firefox 不会抱怨)
- 打开开发者工具,进入控制台
- 粘贴上面的代码片段
- 允许camera/microphone在弹出窗口中访问
- 无
这是 Firefox 中的错误还是代码片段有问题?
为了遵守 MDN 文档,我还尝试使用 good'ol 函数而不是 ES6 箭头函数 - 具有相同的效果。
在 Firefox 53.0.3 中似乎没问题。我得到的输出如下:
禁用所有插件后(尤其是 NoScript - 即使在将 "scripts globally allowed" 设置为 true 后)它似乎 运行 就好了。
抱歉,我想提出不必要的问题,并感谢您再次确认我,问题不是 Firefox 本身,所以找到正确的解决方案!
我正在尝试使用新的基于 Promise 的 WebRTC/Media 工具,以便在用户允许访问摄像头 and/or 麦克风时获得反馈,如此处所述 https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
以下代码片段,简单地注入了浏览器的开发人员工具,在授予访问权限时从未在 Firefox 上实现 Promise,但在 Chrome 上它按预期工作。
(使用 Firefox 53 32 位、Chrome 59 64 位测试)
navigator.mediaDevices.getUserMedia({
"audio": true,
"video": true
})
.then(() => console.log("OK!"))
.catch(() => console.log("NOPE"))
Promise 似乎永远悬而未决。
重现步骤:
- 打开任何 https 加密页面(因此 firefox 不会抱怨)
- 打开开发者工具,进入控制台
- 粘贴上面的代码片段
- 允许camera/microphone在弹出窗口中访问
- 无
这是 Firefox 中的错误还是代码片段有问题? 为了遵守 MDN 文档,我还尝试使用 good'ol 函数而不是 ES6 箭头函数 - 具有相同的效果。
在 Firefox 53.0.3 中似乎没问题。我得到的输出如下:
禁用所有插件后(尤其是 NoScript - 即使在将 "scripts globally allowed" 设置为 true 后)它似乎 运行 就好了。
抱歉,我想提出不必要的问题,并感谢您再次确认我,问题不是 Firefox 本身,所以找到正确的解决方案!