Ответ 1
Запись в поток телефонных звонков возможна, но не с уровня приложения на складе (без корневого).
Когда инициируется телефонный звонок, микрофон "обычно" (действительно зависит от конкретного телефона) направляется непосредственно к основной полосе, то есть пропускает основной процессор в целом.
Для исходящего аудио: mic- > codec- > baseband Для входящего звука: baseband- > codec- > speaker
Если он всегда маршрутизировался: mic- > codec- > mainprocessor- > codec- > baseband
Тогда поток будет "предположительно" доступен, если поддерживаются API-интерфейсы Android (фреймворки).
Причина, по которой я говорю, это возможно, потому что звук (почти для всех смартфонов сейчас) подключается через SlimBus Это позволяет динамически изменять пути аудио. Однако это делается в ядре с помощью драйвера кодека, живущего в ALSA.
Итак, были ли вы так мотивированы, вы могли бы получить источник для ядра Linux для телефона и изменить драйвер кодека /ALSA, чтобы вы могли изменить то, что происходит, когда настроен путь аудио вызова.
Конечно, вы понесли бы латентность с новым путем, нарушив стандарты AT & T (чтобы Аудитория помогла им написать...), и чип базовой полосы может отклонить ваш звук, поскольку он не является своевременным.
Наконец, вам нужно будет изменить исходный код Android (фреймворки), чтобы увеличить API для поддержки ввода звука в этот поток. (Вам нужно будет сделать большие моды для mediaserver, в частности, аудиофрагментатора...)
Это сложно, но есть ваш ответ. Приветствия: -)