2016-04-14 5 views
0

Я пытаюсь создать функцию, чтобы получить выбранное имя микрофона браузера с помощью Javascript. Например, если у нас есть несколько микрофонов в системе, и у браузера есть один выбранный, мне нужно знать его имя, чтобы использовать его в других функциях.Javascript: Получить имя выбранного микрофона браузера

Я попробовал метод getUserMedia, но я не могу понять, как получить имя микрофона с этим. И, как я читал в некоторых статьях, есть некоторые несовместимости с google chrome.

Есть ли другой способ получить эту информацию?

+0

Вы уже смотрели на 'navigator.mediaDevices.enumerateDevices()'? Объясняется здесь: https://developers.google.com/web/updates/2015/10/media-devices. Тем не менее он поддерживается только в Google Chrome и Firefox. – Tomasito665

ответ

1
  • navigator.mediaDevices.enumerateDevices()

    mediaDevice.label


navigator.mediaDevices.enumerateDevices() 
.then(function(devices) { 
    devices.forEach(function(device) { 
    console.log(device.kind + ": " + device.label + 
      " id = " + device.deviceId); 
    }); 
}) 

Поддерживается Chrome 45, Firefox 39


  • MediaStreamTrack.getSources()

Устаревшие

MediaStreamTrack.label 

MediaStreamTrack.getSources(function(sourceInfos) { 
    for (var i = 0; i != sourceInfos.length; ++i) { 
    var sourceInfo = sourceInfos[i]; 
    console.log(sourceInfo.id, sourceInfo.label); 
    } 
}); 

Устаревшие в Chrome 45, удален в Chrome 47.


GetUserMedia должен вызываться до 'enumerateDevices' или 'методы getSources'


+0

Здравствуйте. Спасибо за ваш ответ! Оба решения работают хорошо и являются хорошим толчком для того, что мне нужно. Однако трудно узнать микрофон, который использует браузер, поскольку они всегда имеют одинаковый порядок, независимо от того, какой из них выбран по умолчанию в браузере. – Bruno

+0

«Некоторые ОС, такие как OSX, имеют« виртуальное »устройство по умолчанию, которое обычно имеет слово« по умолчанию »в своей метке (которое доступно только во время использования или если пользователь предоставил постоянные разрешения), но не каждая ОС делает это, и я не знаю другого способа обнаружить дефолт ». @jib http: // stackoverflow.com/questions/31264487/web-audio-api-input-from-specific-microphone – bfmags

+0

К сожалению, английский язык не является моим основным языком. Я попытаюсь объяснить это лучше: У меня этот микрофон выбран по умолчанию в браузере: http://s9.postimg.org/igwc1yrfz/mic.png Теперь мне нужно знать через Javascript имя/ID этот микрофон. Тот, который по умолчанию выбран в браузере. Причина, по которой мне это нужно, - отправить это имя или идентификатор службе, потому что у меня будет другое приложение, которое потребуется использовать другой микрофон. И в этом приложении необходимо исключить использование микрофона в браузере. – Bruno