Я пытаюсь использовать AudioRecord
с AudioSource.VOICE_DOWNLINK
на Nexus 5X, Android 7.1 (моя собственная сборка из AOSP).
Я уже прошел этап разрешения - переместил мой APK в привилегированные приложения, внеся корректировку в AudioRecord
в Android-источнике, чтобы прекратить бросать исключение из этого источника.
Теперь я получаю пустые буферы записи во время телефонного звонка.
Я знаю, что есть много приложений для записи вызовов, и они работают на других устройствах. Я также видел некоторые приложения, которые могут выполнять некоторые взлома на корне N5 и заставить его работать.
Я хочу добиться того же самого в Nexus 5X - для меня все в порядке, включая изменение версии Android, изменение драйверов Qualcomm, файлов конфигурации устройства и т.д. - в основном все, что может быть достигнуто в пользовательском ROM.
Я пробовал общаться с кодом платформы - hardware/qcom/audio/hal/voice.c, особенно с функцией voice_check_and_set_incall_rec_usecase
, но до сих пор не мог понять.
Также проверено устройство /lge/bullhead/mixer _paths.xml, найдено там раздел, относящийся к записи вызова:
<!-- Incall Recording -->
<ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" />
<ctl name="MultiMedia1 Mixer VOC_REC_DL" value="0" />
<ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
<ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
<!-- Incall Recording End -->
Но я тоже не мог понять, как это можно сделать.