Sprachaufzeichnung in Android mit MediaRecorder

Ich habe ein Problem beim Aufzeichnen eines Anrufs, für den ich einen Dienst eingerichtet und einen angerufen habeBroadcastReceiver um den Anrufstatus zu erhalten. ImTelephonyManager.EXTRA_STATE_OFFHOOK wenn der Anruf eingeht. Ich benutze folgenden Code, um den Anruf aufzuzeichnen

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);                               recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setOutputFile(audiofile.getAbsolutePath());
try {
     recorder.prepare();
     recorder.start();
} 
catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) { 
e.printStackTrace();
} catch (Exception ex)
{
ex.printStackTrace();
}

Dieser Code funktioniert einwandfrei und erstellt die Audiodatei, aber wenn ich die Audiodatei höre, kann ich nur meine ausgehende Stimme hören, die Anruferstimme wird nicht aufgezeichnet.

Wenn ich benutze

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);

Anstatt von

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

im obigen Code wird eine Ausnahme ausgelöst, dass der Recoder bei recoder.start () fehlschlägt;

Wie kann ich einen Sprachanruf aufzeichnen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage