Android录制来电和去电

时间:2011-07-14 04:21:31

标签: android android-phone-call call-recording

我想了解有没有办法在Android手机2.2及以上版本上录制来电和外拨电话?

客户希望记录他们对客户进行的代理的调用,以便以后可以用它来填写一些材料。而不是让客户端在通话时等待他们想要稍后再做。

这可能吗?我需要使用哪些API?

5 个答案:

答案 0 :(得分:33)

首先,您必须小心录制通话,因为根据国家/地区有法律要求。

以下是关于如何使用blog post录制音频的MediaRecorder

我还没有尝试录制电话,但MediaRecorder AudioSource中有一个选项:

  • VOICE_CALL - 语音呼叫上行链路+下行链路音频源
  • VOICE_DOWNLINK - 语音呼叫下行链路(Rx)音频源
  • VOICE_UPLINK - 语音呼叫上行链路(Tx)音频源

只要音频源选项有效,你就应该好好去。

答案 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分钟对话的根目录存储对话。