Web音频API和多输入麦克风设备

Web音频API和多输入麦克风设备,api,audio,web,web-audio-api,Api,Audio,Web,Web Audio Api,我有一个带有4个输入麦克风的音频设备 有人知道我是否可以将所有这些输入用于Web音频API 谢谢 调用getUserMedia四次,每次选择不同的设备,并使用createMediaStreamSource四次,虽然我还没有测试过。是的,您可以列出所有输入设备并选择一个使用 <html><body> <select id="devices_list"></select> <script> function devices_list(){

我有一个带有4个输入麦克风的音频设备

有人知道我是否可以将所有这些输入用于Web音频API


谢谢

调用getUserMedia四次,每次选择不同的设备,并使用createMediaStreamSource四次,虽然我还没有测试过。

是的,您可以列出所有输入设备并选择一个使用

<html><body>

<select id="devices_list"></select>
<script>
function devices_list(){
        var handleMediaSourcesList = function(list){
            for(i=0;i<list.length;i++){
                var device= list[i];
                if(device.kind == 'audioinput') {
                    document.querySelector('#devices_list').options.add(new Option(device.label ,device.deviceId));
                }
            }

        }
        if (navigator["mediaDevices"] && navigator["mediaDevices"]["enumerateDevices"])
            {
                navigator["mediaDevices"]["enumerateDevices"]().then(handleMediaSourcesList);
            }
            // Old style API
            else if (window["MediaStreamTrack"] && window["MediaStreamTrack"]["getSources"])
            {
                window["MediaStreamTrack"]["getSources"](handleMediaSourcesList);
            }
}

function usemic(){

    navigator.getUserMedia ({
      "audio":{
            "optional": [{
            "sourceId": document.querySelector('#devices_list').value
             }]
        }}, function (stream) {
            //...some code to use stream from mic
        },function(err){
            debuginfo('getMedia ERR:'+err.message );
        });
}
</script>
</body></html>

功能设备\u列表(){
var handleMediaSourcesList=函数(列表){

对于(i=0;据我所知,WebAudio规范中还没有对此的支持。显然2019年仍然相同:(为什么每次都要选择不同的设备?在FireFox中,你似乎可以做到这一点,但在Chrome中,你无法选择设备。但是,这无助于解决使用单个设备和多个输入的问题。两种浏览器都只能看到多输入界面的前两个通道。