【问题标题】:record call on Android nougat 7.0在 Android nougat 7.0 上录制通话
【发布时间】:2018-05-12 20:05:47
【问题描述】:
我正在使用一个简单的媒体记录器来记录通话
它在设备上工作正常
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(audiofile.getAbsolutePath());
【问题讨论】:
标签:
java
android
call
android-7.0-nougat
android-mediarecorder
【解决方案1】:
经过一个月关于通话录音的研究,我发现在每个 Android 版本上都有使用 MediaRecorder 的类型来使其工作,我们不能对所有 Android 版本只使用一种类型。我在我的项目中使用的这条规则,目前,它适用于所有大多数 android 版本。
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
callType = "VOICE_CALL";
} else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
callType = "MIC";
} else {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
callType = "VOICE_COMMUNICATION";
}
为了快速检查,您可以查看我的示例:https://github.com/tntkhang/call-recording-master