WebRTC-可以获取指定的媒体设备信息-例如讲者

时间:2019-07-16 07:54:11

标签: javascript google-chrome webrtc mediadevices

我想在网站上播放扬声器发出的指定声音。我已经通过该示例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);

}

1 个答案:

答案 0 :(得分:0)

您不会忽略“默认”,只能使用“默认”

'default'是最好的选择,它是在os级别上选择的,并且将在默认音频输出上播放声音,这在大多数情况下是正确的。

我认为不可能事先获得确切的输出设备。虽然您可以选择任何:)

  1. 不同的浏览器将针对以下结果返回不同的相似结果

    navigator.mediaDevices.enumerateDevices()。then(function(mediaDevices){     console.log(“ mediaDevices:”,mediaDevices); });

  2. 可以通过站点设置在chrome中选择麦克风和摄像机默认设置,但不能选择音频输出。

但是您可以给出可能的音频输出列表,然后从中进行选择,例如: webrtc