Доброе утро,
Я хотел бы создать приложение 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" />
Однако эта авторизация доступна только для системных приложений.
Есть ли у вас какие-либо решения для захвата исходящего звука?