2012-03-12 1 views
4

В настоящее время я ищу варианты для управления аудио на Android. Цель состоит в том, чтобы обрабатывать звук с микрофона в режиме реального времени во время телефонного звонка. Лучшим решением было бы сделать это по собственному вызову. Но восстановление телефонного приложения (без VOIP) тоже было бы неплохо. Есть ли способ достичь этого с помощью API Android (также недокументированный)? Если нет, какие шаги необходимы для того, чтобы все работало?Android: манипулирование голосом в телефонных звонках

На iOS есть приложения, которые управляют голосом, но создают соединение VOIP. Я слышал, что на Android вы можете «клонировать» телефонное приложение и, в конце концов, загружать его собственным аудиопотоком? Есть ли приложения, которые добавляют шум во время разговора? Какие API-интерфейсы задействованы?

ответ

4

Лучшим решением было бы сделать это по собственному вызову.

Это невозможно. У вас нет доступа к потоку аудио в разговоре, за исключением, возможно, в режиме громкой связи.

Но восстановление телефонного приложения (без VOIP) было бы прекрасным.

Последнее официальное слово от Google (2010), вся ОС не имеет доступа к аудиопотоку в вызове, так как все обрабатывается на более низком уровне. Даже если более новые версии Android имеют доступ к потоку аудио в режиме «звонок», «восстановление телефонного приложения» возможно только в том случае, если вы создаете собственную прошивку.

+0

Итак, вы могли бы сказать, что нет способа захватить это, даже если телефон был укоренен? – Jan

+0

@kuq: Опять же, AFAIK, вся ОС не имеет доступа к потоку аудио в разговоре. Корни этого не меняют. – CommonsWare

+0

Затем на каком слое у меня есть доступ к этому? Я читал о HAL (Hardware Abstraction Layer), но понятия не имею, есть ли какие-либо изменения в успехе. – Jan

0

В качестве недостатка я мог представить себе запись потока нисходящей линии связи с использованием API MediaRecorder и запись его обратно на аппаратное обеспечение с использованием метода AudioTracks write(). Благодаря этому я мог манипулировать входящим голосом. Но все же я думаю, что это не будет работать во время телефонных звонков. И я не вижу способа выбрать разные аппаратные назначения.