问题
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 on call they want to do it later on.
Is this possible and what APIs do I need to use?
回答1:
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.
回答2:
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();
回答3:
Call recording programmatically is erratic on android version 4 and is established to be only one side (even if possible) for security reasons. Many vendors have their own hardware implementations for call recording. There was a case in my app where I had to record a conference call by pressing hold and add a new call. The moment I pressed hold call recording stopped becuase the incall mode was gone.
回答4:
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.
来源:https://stackoverflow.com/questions/6688444/android-recording-incoming-and-outgoing-calls