2016-09-01 5 views
0

У меня есть сетевое приложение/служба на стационарной коробке Android, которая получает аудио с удаленного карманного устройства.Как перенаправить звук для других приложений

Для обработки этого звука мне нужны приложения распознавания голоса для Android (например, приложение Google). Эти приложения читают звук с микрофона.

Как я могу маршрутизировать аудио, доступное в моем приложении/службе, чтобы оно, казалось, поступало с микрофона?

Я считаю, что DEVICE_OUT_REMOTE_SUBMIX в AudioSystem имеет к этому какое-то отношение, но я не могу найти никакой документации по этому вопросу.

ответ

0

Голосовые приложения читают аудио из AUDIO_DEVICE_IN_BUILTIN_MIC (или Android маршрутов их ввода аудио из HAL, который реализует это устройство) (ДОПОЛНЕНО. Это осуществляется в Диспетчере Audio политики Некоторые ППМ не делать это таким образом, например, проигрыватель Nexus . Для них APM также необходимо изменить.)

Я написал аудио HAL для Android и настроил его для реализации AUDIO_DEVICE_IN_BUILTIN_MIC, в то время как я удалил основной HAL для этого ввода. Этого достаточно для других приложений ввода микрофона для чтения звука с моего HAL.

Я подаю аудио в HAL через другой AudioTrack до AUDIO_DEVICE_OUT_LINE, который мой HAL реализует, но я мог бы также переключить его на unix-socket, если потребуется в будущем.

Более подробная информация о конфигурации были обсуждены here

[Обновление2]

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

Смежные вопросы