我想了解有没有办法在Android手机2.2及以上版本上录制来电和外拨电话?
客户希望记录他们对客户进行的代理的调用,以便以后可以用它来填写一些材料。而不是让客户端在通话时等待他们想要稍后再做。
这可能吗?我需要使用哪些API?
答案 0 :(得分:33)
首先,您必须小心录制通话,因为根据国家/地区有法律要求。
以下是关于如何使用blog post录制音频的MediaRecorder。
我还没有尝试录制电话,但MediaRecorder AudioSource中有一个选项:
只要音频源选项有效,你就应该好好去。
答案 1 :(得分:3)
我正在使用麦克风录制通话以获得更好的支持和兼容性。
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();
答案 2 :(得分:0)
我正在使用麦克风录制电话音频,还使用电话管理器来查找呼叫状态。
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 ;
}
之后,您可以轻松地在任意位置开始录制
recorder.prepare();
recorder.start();
完成录制后,您也可以轻松停止录制
recorder.stop();
recorder.reset();
recorder.release();
答案 3 :(得分:-1)
在Android版本4上以编程方式进行的呼叫记录不稳定,并且出于安全原因而被建立为仅一侧(即使可能)。许多供应商都有自己的硬件实现来进行呼叫记录。我的应用程序中有一个案例,我必须通过按住并添加新呼叫来录制电话会议。我按下保持呼叫记录的那一刻停止了,因为incall模式消失了。
答案 4 :(得分:-13)
记录刚刚在Android手机通话中点击菜单按钮,它将以amr格式和sd卡最多20分钟对话的根目录存储对话。