关于谷歌浏览器:Javascript:获取浏览器的选定麦克风名称

Javascript: Get the browser's selected microphone name

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

我尝试了getUserMedia方法,但是我不知道如何使用此方法获取麦克风名称。 而且,正如我在某些文章中所读到的,与Google chrome存在一些不兼容之处。

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


  • navigator.mediaDevices.enumerateDevices()

    mediaDevice.label

1
2
3
4
5
6
7
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()

Deprecated

1
MediaStreamTrack.label

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

Deprecated in Chrome 45, removed in Chrome 47.

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

  • https://developer.mozilla.org/zh-CN/docs/Web/API/MediaStreamTrack
  • https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/enumerateDevices