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?