0
很快提出我的問題。如何在android中錄製通話? (舊方法不起作用)
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setOutputFile((audioFile.getAbsolutePath()));
此代碼適用於note5,但不適用於s8 +。我無法錄製其他方聲音。
由於CAPTURE_AUDIO_OUTPUT權限問題,無法使用AudioSource.VOICE_CALL或AudioSource.VOICE_DOWNLINK和AudioSource.VOICE_UPLINK。
但ACR應用程序成功記錄所有對話,所以它是可能的。
注:我不認爲格式或編碼器與該主題相關
全碼:
private void startRecord() {
mediaRecorder = new MediaRecorder();
Long tsLong = System.currentTimeMillis()/1000;
String ts = tsLong.toString();
File recordDirectory = new File(Environment.getExternalStorageDirectory().toString() + "/CallRecord");
if (!recordDirectory.isDirectory()) {
recordDirectory.mkdirs();
}
audioFile = new File(Environment.getExternalStorageDirectory().toString() + "/CallRecord",
ts + ".aac");
recordedFilePath = audioFile.getPath();
RecordInfo.recordPath = recordedFilePath;
tsLong = null;
ts = null;
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setOutputFile((audioFile.getAbsolutePath()));
try {
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
private void stopRecord() {
mediaRecorder.stop();
mediaRecorder.release();
}
看看這個: https://github.com/rjeffm/CallRecorder –
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 因爲權限,我不能使用它。 從VOICE_CALL源捕獲需要CAPTURE_AUDIO_OUTPUT權限。此權限僅供系統組件使用,並且不適用於第三方應用程序。 –