Браузерный доступ к двум импульсным источникам звука - PullRequest
0 голосов
/ 15 апреля 2020

Я занимаюсь разработкой веб-приложения, которое должно получать локальный аудиовход от двух разных локальных аудиоисточников, которые я выбираю в своем веб-приложении.

При разработке этого приложения единственным источником аудиовхода является стереомикрофон в веб-камере; другой - стерео аудио линейный вход от звуковой карты. Я установил встроенный аудиовход в качестве предпочтительного устройства в PulseAudio для записи в режиме аудиозаписи. Я заметил, что Chrome и Firefox оба запрашивают аудиовход из категории сценария использования записи, pavucontrol показывает это.

Я использую navigator.mediaDevices.enumerateDevices (); для идентификации доступны идентификаторы устройств . Я создаю два ограничения, по одному для каждого из источников аудиовхода, которые выглядят как {audio: deviceId: {точный: devId}} , где devId - это переменная, содержащая нужный мне deviceId в каждом случае .

Я вызываю navigator.mediaDevices.getUserMedia (ограничение); дважды, один раз для каждого ограничения deviceId.

Когда каждый возвращается, один из MediaStream * Объекты 1020 * должны содержать MediaStreamTrack по умолчанию для источников аудиовхода. Другой должен быть таким же для следующего активного источника отложенного приоритета, как указано в конфигурации PulseAudio.

Но ... PulseAudio выделяет источник аудиовхода по умолчанию обоим, игнорируя мои ограничения deviceId.

Я не могу понять, что идет не так. Обе браузеры не запрашивают правильное устройство от PulseAudio или PulseAudio ограничивает себя предоставлением только устройства ввода аудио по умолчанию, пока пользователь не возится с pavucontrol. Я чувствую, что меня подвело поведение PulseAudio. Я говорю это потому, что нахожу Google Meet, jitsi.org также требует от меня настройки источника аудиовхода через pavucontrol. Отсюда мое подозрение, что это проблема PulseAudio.

Поэтому в своем веб-приложении я указываю точные источники аудиовхода, но получаю предпочтительный источник аудиовхода. Я хочу оба.

  • Есть ли настройка, которая заставит PulseAudio обслуживать указанные устройства?
  • Если нет, есть ли способ решить эту проблему?
  • Является ли это поведение результатом функции безопасности, которую можно отключить для авторизованных пользователей?
  • Есть ли дистрибутивы, которые настроили PulseAudio, не ведут себя таким образом?
  • Есть ли в этом выпуске билет на bugzilla или JIRA?
...