我想在网站上播放扬声器发出的指定声音。我已经通过该示例https://webrtc.github.io/samples/src/content/devices/input-output/中的mediaDevices.getUserMedia获取了所有用户设备。
重点是让演讲者不要耳机等。DeviceInfo对象具有4个属性:
deviceId-一些GUID
组ID-其他一些GUID
种类-由“音频输出”过滤
标签-名称
有机会百分百确定我们有发言权吗?
我已经过滤以忽略默认值:
function findSpeakers(audioOutputList){
let defaultDevice = audioOutputList.filter(device => {
if(device.deviceId == "default" && device.kind == "audiooutput"){
return true;
}else{
return false;
}
})
let audioOutputsWithoutDefault = audioOutputList.filter(device =>{
if(device.label.indexOf(defaultDevice[0].label.replace('Default - ','')) < 1 && device.kind == "audiooutput"){
return true;
}else{
return false;
}
})
console.log(audioOutputsWithoutDefault);
}
答案 0 :(得分:0)
您不会忽略“默认”,只能使用“默认”
'default'是最好的选择,它是在os级别上选择的,并且将在默认音频输出上播放声音,这在大多数情况下是正确的。
我认为不可能事先获得确切的输出设备。虽然您可以选择任何:)
不同的浏览器将针对以下结果返回不同的相似结果
:navigator.mediaDevices.enumerateDevices()。then(function(mediaDevices){ console.log(“ mediaDevices:”,mediaDevices); });
可以通过站点设置在chrome中选择麦克风和摄像机默认设置,但不能选择音频输出。
但是您可以给出可能的音频输出列表,然后从中进行选择,例如: webrtc