Cordova + WebRTC + Android: не удается получить звук со входа USB - PullRequest
0 голосов
/ 30 сентября 2019

Я боролся с этой проблемой в течение последних 10 дней, но не смог заставить ее работать. Вот мой случай:

Я хочу транслировать караоке в прямом эфире с помощью WebRTC в моем приложении Cordova. Все работает, когда я использую встроенный микрофон мобильного устройства. Но встроенный микрофон не дает отличного звука, поэтому я выбираю ввод звука через USB на мобильном устройстве (мой последний телефон имеет только разъем USB, но не имеет аудиоразъема 3,5 мм).

Первая проблема: когда я вызываю метод getUserMedia, он берет звук с USB вместе с микрофоном устройства, даже если назначить deviceid в параметре ограничений. Так что всегда есть шум вокруг. Я не нашел способа отключить микрофон устройства в этом случае. Я попробовал несколько приложений, доступных в PlayStore, чтобы отключить микрофон, но затем звук с USB также отключился.

Я попытался использовать плагин "cordova-plugin-audioinput", который работает именно так, как мне нужно. Он берет звук только с USB и преобразует его в MediaStream. Но тогда у него есть открытая проблема создания потрескивающего звука.

Edit-1 Я обнаружил, что если я передаю "echoCancellation: false или sampleRate: 48000" в качестве аудиоограничения в методе getUserMedia, тогда он не принимает аудио с USB. Если я не передам эти параметры, качество звука будет плохим.

Может кто-нибудь подсказать, есть ли способ получить необработанный звук точно и только с USB, используя метод getUserMedia в приложении cordova для Android.

...