我请用户许可使用摄像头和麦克风:
await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
在Firefox中,出现以下提示:
用户授予许可后,如何得知选择了哪个“相机和麦克风”? getUserMedia
的返回值没有提供太多信息。
答案 0 :(得分:1)
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脖子上有点痛苦。