サイト内のスピーカーで指定の音を鳴らしたい。このデモhttps://webrtc.github.io/samples/src/content/devices/input-output/のように、 mediaDevices.getUserMedia によってすべてのユーザー デバイスを既に取得しています。
ポイントは、ヘッドセットなどではなくスピーカーを取得することです。DeviceInfo オブジェクトには 4 つのプロパティがあります。
deviceId - いくつかの GUID
グループ ID - その他の GUID
kind - 'audiooutput' でフィルタリング
ラベル - 名前
100%確実にスピーカーを入手できる可能性はありますか?
デフォルトを無視するようにすでにフィルタリングしました:
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);
}