微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何找出哪个麦克风设备用户授予了权限?

如何解决如何找出哪个麦克风设备用户授予了权限?

我请用户许可使用摄像头和麦克风:

await navigator.mediaDevices.getUserMedia({ audio: true,video: true });

在Firefox中,出现以下提示

enter image description here

用户授予许可后,如何得知选择了哪个“相机和麦克风”? getUserMedia的返回值没有提供太多信息。

解决方法

gUM给您一个stream对象后,请执行以下操作:

async function getAudioDeviceLabel(stream) {
  let audioDeviceLabel = 'unknown'
  const tracks = stream.getAudioTracks()
  if( tracks && tracks.length >= 1 && tracks[0] ) {
    const settings = tracks[0].getSettings()
    const chosenDeviceId = settings.deviceId
    if (chosenDeviceId) {
      let deviceList = await navigator.mediaDevices.enumerateDevices()
      deviceList = deviceList.filter(device => device.deviceId === chosenDeviceId)
      if (deviceList && deviceList.length >= 1) audioDeviceLabel = deviceList[0].label
    }
  }
  return audioDeviceLabel 
}

这会从其设置中获取流音频轨道的deviceId。然后,它查看枚举设备的列表以检索与deviceId关联的标签。

要获取此信息,在xxx脖子上有点痛苦。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。