Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:获取浏览器';s选定的麦克风名称_Javascript_Google Chrome_Microphone_Getusermedia - Fatal编程技术网

Javascript:获取浏览器';s选定的麦克风名称

Javascript:获取浏览器';s选定的麦克风名称,javascript,google-chrome,microphone,getusermedia,Javascript,Google Chrome,Microphone,Getusermedia,我试图构建一个函数,通过Javascript获取浏览器选择的麦克风名称。比如,如果系统中有多个麦克风,浏览器中选择了一个,我需要知道他的名字才能在其他功能中使用它 我尝试了getUserMedia方法,但我不知道如何使用此方法获取麦克风名称。而且,正如我在一些文章中读到的,谷歌浏览器与谷歌浏览器存在一些不兼容之处 是否有其他方法获取此信息? navigator.mediaDevices.enumerateDevices() mediaDevice.label 由Chrome 45、Firef

我试图构建一个函数,通过Javascript获取浏览器选择的麦克风名称。比如,如果系统中有多个麦克风,浏览器中选择了一个,我需要知道他的名字才能在其他功能中使用它

我尝试了getUserMedia方法,但我不知道如何使用此方法获取麦克风名称。而且,正如我在一些文章中读到的,谷歌浏览器与谷歌浏览器存在一些不兼容之处

是否有其他方法获取此信息?

  • navigator.mediaDevices.enumerateDevices()

    mediaDevice.label


由Chrome 45、Firefox 39支持


  • MediaStreamTrack.getSources()
不赞成


在Chrome 45中弃用,在Chrome 47中删除。


必须在“enumerateDevices”或“getSources”方法之前调用getUserMedia


      • navigator.mediaDevices.enumerateDevices()

        mediaDevice.label


      由Chrome 45、Firefox 39支持


      • MediaStreamTrack.getSources()
      不赞成


      在Chrome 45中弃用,在Chrome 47中删除。


      必须在“enumerateDevices”或“getSources”方法之前调用getUserMedia



      您是否已经看过了
      navigator.mediaDevices.enumerateDevices()
      ?此处解释:它仅在Google Chrome和Firefox上受支持。您是否已经看过
      navigator.mediaDevices.enumerateDevices()
      ?这里解释:它只在Google Chrome和Firefox上受支持。谢谢你的回复!这两种解决方案都很有效,很好地满足了我的需求。但是,很难知道浏览器使用的麦克风,因为无论在浏览器中默认选择哪个麦克风,它们的顺序都是相同的。”有些操作系统(如OSX)有一个“虚拟”默认设备,其标签中通常有“默认”一词(仅在使用期间或用户授予持久权限时才可用),但不是每个操作系统都这样做,我也不知道还有什么其他方法可以检测默认值。”@jib抱歉,英语不是我的主要语言。我将尝试更好地解释:我在浏览器中默认选择了这个麦克风:现在我需要通过Javascript知道这个麦克风的名称/ID。在浏览器中选择为默认值的一个。我需要它的原因是将该名称或id发送到服务,因为我将有另一个应用程序需要使用另一个麦克风。在此应用程序中,需要排除在浏览器中使用的麦克风。大致如图所示
      MediaStreamTrack。getSources
      在Firefox中不起作用。请在回答的这一部分中删除对Firefox的提及,或者更好的做法是,根本不建议使用Firefox,因为它已被弃用。您好。谢谢你的回复!这两种解决方案都很有效,很好地满足了我的需求。但是,很难知道浏览器使用的麦克风,因为无论在浏览器中默认选择哪个麦克风,它们的顺序都是相同的。”有些操作系统(如OSX)有一个“虚拟”默认设备,其标签中通常有“默认”一词(仅在使用期间或用户授予持久权限时才可用),但不是每个操作系统都这样做,我也不知道还有什么其他方法可以检测默认值。”@jib抱歉,英语不是我的主要语言。我将尝试更好地解释:我在浏览器中默认选择了这个麦克风:现在我需要通过Javascript知道这个麦克风的名称/ID。在浏览器中选择为默认值的一个。我需要它的原因是将该名称或id发送到服务,因为我将有另一个应用程序需要使用另一个麦克风。在此应用程序中,需要排除在浏览器中使用的麦克风。大致如图所示
      MediaStreamTrack。getSources
      在Firefox中不起作用。请在回答的这一部分中删除对Firefox的提及,或者更好的做法是,根本不建议使用Firefox,因为它已被弃用。
      navigator.mediaDevices.enumerateDevices()
      .then(function(devices) {
        devices.forEach(function(device) {
          console.log(device.kind + ": " + device.label +
                  " id = " + device.deviceId);
        });
      })
      
      MediaStreamTrack.label
      
      MediaStreamTrack.getSources(function(sourceInfos) {
        for (var i = 0; i != sourceInfos.length; ++i) {
          var sourceInfo = sourceInfos[i];
          console.log(sourceInfo.id, sourceInfo.label);
        }
      });