Захват выходного звука при общении, Android - PullRequest
0 голосов
/ 06 апреля 2020

Доброе утро,

Я хотел бы создать приложение Android, которое заменяет номеронабиратель телефона c и предлагает сохранять вызовы в файлы.

Поэтому я использую следующее код для записи входного звука (с микрофона).

recorderInput = MediaRecorder().apply {
    reset()
    setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION)
    setOutputFile(File(filesDir, callInformation.audioInputFilePath).path)
    setAudioSamplingRate(8000)
    setAudioEncodingBitRate(12200)
    setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
    setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)
    setOnErrorListener(errorListener)
    prepare()
    start()
}

Моя проблема заключается в записи выходного звука:

recorderInput = MediaRecorder().apply {
    reset()
    setAudioSource(MediaRecorder.AudioSource.VOICE_CALL)
    setOutputFile(File(filesDir, callInformation.audioInputFilePath).path)
    setAudioSamplingRate(8000)
    setAudioEncodingBitRate(12200)
    setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
    setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)
    setOnErrorListener(errorListener)
    prepare()
    start()
}

Из того, что я понимаю из документации (https://developer.android.com/reference/android/media/MediaRecorder.AudioSource#VOICE_CALL), должна быть активирована следующая авторизация:

<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />

Однако эта авторизация доступна только для системных приложений.

Есть ли у вас какие-либо решения для захвата исходящего звука?

...