40

我想了解有没有一种方法可以记录 android 手机 2.2 及更高版本的来电和去电?

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

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

4

4 回答 4

34

首先,您必须小心录音,因为根据国家/地区的不同有法律要求。

这是一篇关于如何使用MediaRecorder录制音频的博客文章。

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

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

只要音频源选项有效,您就可以开始使用了。

于 2011-07-14T04:43:42.470 回答
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();
于 2015-08-19T12:35:17.353 回答
1

我正在使用麦克风录制电话音频,还使用电话管理器查找呼叫状态。

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();
于 2020-08-09T10:25:04.053 回答
-17

要录制在 android 手机通话时只需点击菜单按钮,它将以 amr 格式存储对话,并在 sd 卡的根目录中存储最多 20 分钟的对话。

于 2013-11-23T07:51:56.777 回答