Запись звука с различных внутренних устройств в Android (через недокументированный API) - PullRequest
4 голосов
/ 07 января 2011

Мне было интересно, возможно ли захватывать аудиоданные из других источников, таких как выход системы, FM-радио, Bluetooth-гарнитура и т. Д. Меня особенно интересует захват аудио с FM-радио, и я уже исследовал все возможности, включая попытки Обнюхивать грубую связь по Bluetooth между телефоном и радиоустройством не повезло. Жаль, что Android позволяет записывать только звук с микрофона.

Я посмотрел исходный код Android и не смог найти бэкдора, который позволил бы мне сделать это без рутирования устройства. У вас, по крайней мере, есть идея, как использовать другие устройства (может быть, как-нибудь / dev / audio ), скажем, через NDK или даже лучше - Java (возможно, Reflection?), Чтобы обмануть систему для захвата аудио Поток, скажем, FM-радио. (в моем случае я пытаюсь разработать приложение для HTC Desire)

PS. А для тех из вас, кто против использования недокументированных API, не пишите здесь - я пишу приложение, которое будет для моего личного использования, или даже если я когда-нибудь опубликую его, я предупрежу пользователя о возможных несовместимостях.

1 Ответ

6 голосов
/ 07 января 2011

Я потратил довольно много времени на расшифровку аудио-стека, и я думаю, что вы можете попытаться взломать libaudio.У вас будут проблемы с прямым подключением к оборудованию (/ dev / *), потому что многие устройства используют проприетарные аудио драйверы.В этом отношении нет никаких правил.

Однако уровень абстракции звукового оборудования (HAL), предоставляемый /system/lib/libaudio.so , должен представлять API, описанный в http://source.android.com/porting/audio.html

Система Android, и особенно аудиофлингер, использует этот libaudio HAL для поиска доступных устройств, работы с маршрутизацией и, конечно, для чтения / записи данных PCM.

Таким образом, вы можете перехватить взаимодействие между аудиофлингероми libaudio, переименовав последний и предоставив свой собственный libaudio, который украшает настоящий.Это позволит вам регистрировать происходящее и, возможно, перехватывать выход FM-радио, при условии, что это не обрабатывается аппаратно напрямую.

Конечно, все это требует рутирования.Пожалуйста, прокомментируйте, если вам удастся сделать это, это меня интересует.

...