Android Recording Incoming and Outgoing Calls
I am trying to understand is there a way I can record calls incoming and outgoing on android phones 2.2 and above?
A client wants to record calls of the agents they make to the clients so that it can be later used to fill out some material. Instead of making the client wait while开发者_如何学Python on call they want to do it later on.
Is this possible and what APIs do I need to use?
First off, you have to be careful with recording calls as there are legal requirements depending on the country.
Here is a blog post on how to record audio using the MediaRecorder.
I haven't tried recording phone call's but there is a option in MediaRecorder AudioSource for:
- VOICE_CALL - Voice call uplink + downlink audio source
- VOICE_DOWNLINK - Voice call downlink (Rx) audio source
- VOICE_UPLINK - Voice call uplink (Tx) audio source
As long as the audio source options work, you should be good to go.
I am using mic to record calls for better support and compatibility.
MediaRecorder recorder = new MediaRecorder();
recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setOutputFile(your_desired_folder_path);
try {
recorder.prepare();
} catch (java.io.IOException e) {
recorder = null;
return;
}
recorder.start();
I am using mic to record phone audio and also use the Telephony manager to find the calling state.
private MediaRecorder recorder;
recorder = new MediaRecorder();
try {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(your_desired_files_absoulte_path);
} catch (Exception e) {
e.printstacktrace ;
}
after that, you can easily start recording anywhere you want
recorder.prepare();
recorder.start();
and after finishing recording you can easily also stop the recording
recorder.stop();
recorder.reset();
recorder.release();
to record just hit the menu button while in call in android phone it will store conversation in amr format and in root directory of sd card max 20min conversation.
精彩评论