WebRTC:Firefox不检测任何输出设备

时间:2017-01-10 12:49:00

标签: javascript firefox output webrtc device

我尝试在Ubuntu 16.04上运行此脚本来检测Mozilla Firefox v50.1.0中的音频设备。 [1]

navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
  devices.forEach(function(device) {
    console.log(device.kind + ": " + device.label +
                " id = " + device.deviceId);
  });
})
.catch(function(err) {
  console.log(err.name + ": " + err.message);
});

它仅检测输入设备,但不检测输出。适用于Chrome和Opera,但不适用于Firefox。

顺便说一下,我需要手动将我的页面域添加到Firefox的about:config中的media.getusermedia.screensharing.allowed_domains以获取允许共享我的设备的弹出窗口。为什么这有必要?

1 个答案:

答案 0 :(得分:3)

Firefox中尚未实现

Enumerationselection输出设备。

没有域白名单要求共享相机& Firefox中的麦克风。从来不是。一旦实现输出设备,就不会有输出设备。

您提到的域名白名单仅用于 屏幕 共享,共享一个桌面。从Firefox 52(目前为Firefox Developer Edition)开始,即使该要求也被删除了,它已被a warning取代。

屏幕共享设备未使用enumerateDevices进行枚举,因此可能不是您所追求的内容,但无论如何我都会介绍原因:

白名单(现在警告)的原因是在网络上共享一个浏览器窗口时特别固有的安全风险。简而言之,这种共享允许站点查看从其他域传唤的站点的像素,从而对跨源保护进行最终运行。恶意网站可以使用此功能从您登录的其他网站弹出您的私人信息,有效地浏览您,并捕获结果,窃取您的私人数据。

您可以在my blog中了解详情。