Потоковое аудио на телефонный звонок Android - PullRequest
13 голосов
/ 11 марта 2011

Я пытаюсь отправить аудиопоток через телефонный звонок на Android.

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

Если это возможно, пожалуйста, дайте мне знать, какие классы / функции справляются с этим.

Ответы [ 5 ]

16 голосов
/ 19 февраля 2014

Запись в поток телефонных звонков IS возможна, но не на уровне приложения на обычном (не рутированном) телефоне.

Когда инициируется телефонный звонок, микрофон "обычно""(на самом деле зависит от конкретного телефона) направляется непосредственно к основной полосе частот, то есть вообще пропускает основной процессор.

Для исходящего звука: mic-> codec-> baseband Для входящего звука: baseband-> codec-> speaker

Если бы он всегда был маршрутизирован: mic-> codec-> mainprocessor-> codec-> baseband

Тогда поток будет "предположительно" доступен, если API-интерфейсы Android (платформы) будут поддерживать доступ к нему.

Причина, по которой я говорю, что это возможно, заключается в том, что звук (почти для всехСмартфоны) подключен через SlimBus Это позволяет динамически менять звуковые дорожки.Однако это делается в ядре с помощью драйвера кодека, который находится в ALSA .

Итак ... если бы вы были так мотивированы, вы могли бы получить исходный код для ядра Linux для телефона иИзмените драйвер кодека / ALSA, чтобы вы могли изменить то, что происходит при настройке звукового тракта вызова.

Конечно, тогда вы столкнетесь с задержкой с новым путем, нарушив настройку AT & T стандартов вызовов / задержек (чтобы аудитория помогла им написать ...), и чип основной полосы частот может отклонить ваш звук, поскольку он не своевременен.

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

Это сложно, но есть ваш ответ.Ура,: -)

0 голосов
/ 08 апреля 2019

Это должно быть возможно, потому что телефоны будут позволять Bluetooth отправлять аудио в виде микрофона.

Поскольку мне нужно решить эту проблему, у меня есть одна идея - по сути, послать сигнал bluetooth себе, «скрытым» какмикрофонный вход.

Другая идея (извиняюсь, если она отстойная) состоит в том, чтобы включить динамик как микрофон.Так как кажется, что у говорящего есть доступ к требуемому оборудованию, возможно, есть способ внедрить поток аудиоданных таким образом.

Поскольку я совершенно новичок в кодировании на Android с помощью SDK, прошу прощения за первоначальный провалэтого поста я буду обновлять по мере того, как я / мы это выясним.

0 голосов
/ 19 декабря 2016

Получить аудиоданные очень возможно, но записать звук в восходящий канал невозможно

0 голосов
/ 07 января 2016

Для записи звука удаленного субмикса требуется разрешение CAPTURE_AUDIO_OUTPUT.Это разрешение зарезервировано для использования системными компонентами и не доступно сторонним приложениям: (

0 голосов
/ 11 марта 2011

Запись в поток телефонных звонков невозможна, извините.

...