【问题标题】:Javascript: Get the browser's selected microphone nameJavascript:获取浏览器选择的麦克风名称
【发布时间】:2016-04-14 11:35:35
【问题描述】:

我正在尝试构建一个函数来通过 Javascript 获取浏览器选择的麦克风名称。就像我们在系统中有几个麦克风并且浏览器选择了一个,我需要知道他的名字才能在其他功能中使用它。

我尝试了 getUserMedia 方法,但我不知道如何使用此方法获取麦克风名称。而且,正如我在一些文章中看到的那样,与 google chrome 存在一些不兼容问题。

还有其他方法可以获取此信息吗?

【问题讨论】:

标签: javascript google-chrome microphone getusermedia


【解决方案1】:
  • navigator.mediaDevices.enumerateDevices()

    媒体设备标签


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

受 Chrome 45、Firefox 39 支持


  • MediaStreamTrack.getSources()

已弃用

MediaStreamTrack.label

MediaStreamTrack.getSources(function(sourceInfos) {
  for (var i = 0; i != sourceInfos.length; ++i) {
    var sourceInfo = sourceInfos[i];
    console.log(sourceInfo.id, sourceInfo.label);
  }
});

在 Chrome 45 中已弃用,在 Chrome 47 中已删除。


getUserMedia 必须在“enumerateDevices”或“getSources”方法之前调用


【讨论】:

  • 你好。感谢你的回复!两种解决方案都运行良好,并且可以很好地满足我的需求。但是很难知道浏览器正在使用哪个麦克风,因为无论浏览器默认选择哪一个,它们的顺序始终相同。
  • "某些操作系统,如 OSX,有一个“虚拟”默认设备,其标签中通常有“默认”字样(仅在使用期间或用户授予持久权限时可用),但不是每个操作系统都会这样做,我不知道有任何其他方法可以检测默认值。” @jib stackoverflow.com/questions/31264487/…
  • 抱歉,英语不是我的主要语言。我会尝试更好地解释它:我在浏览器中默认选择了这个麦克风:s9.postimg.org/igwc1yrfz/mic.png 现在我需要通过 Javascript 知道这个麦克风的名称/ID。在浏览器中被选为默认值的那个。我需要这个的原因是将该名称或 ID 发送到服务,因为我将有另一个应用程序需要使用另一个麦克风。并且在这个应用程序中需要排除浏览器中正在使用的麦克风。
  • 和这里显示的差不多deeppai.com/2014/01/28/…
  • MediaStreamTrack.getSources 在 Firefox 中工作。请从答案的那部分中删除对 Firefox 的提及,或者更好的是,根本不建议它,因为它已被弃用。
猜你喜欢
  • 2015-03-06
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多