在android中,是否可以在不打开移动的扬声器的情况下记录来电/外呼的语音通话。我在android市场上看到过一个应用程序。它不打开扬声器就不能正确记录对方的语音,因为它使用麦克风进行记录。可能是通过其他技术实现的吗?
final MediaRecorder callrecorder = new MediaRecorder();
callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
callrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
callrecorder.setOutputFile(recordPath);
callrecorder.prepare();
callrecorder.start();
5条答案
按热度按时间xggvc2p61#
将音频源设置为MIC对我很有效。
但并非所有设备都提供呼叫录音的硬件支持。请参考此[链接]:http://forum.xda-developers.com/showthread.php?t=926498.
结果是,在一些电话中,主叫方和被叫方的声音都被记录下来,而在另一些电话中,只有说话者的声音被记录下来。
mzsu5hc02#
Android手机(据我所知)有一个应用程序处理器和一个调制解调器处理器。当手机进行语音通话时,音频数据会直接从调制解调器处理器路由到音频硬件(除非硬件发生变化)。应用程序处理器完全不知道音频数据,只知道通话状态。
因此,简而言之,如果没有适当的硬件支持,您将无法录制音频数据。
oxiaedzo3#
您可以同时使用音频源
MediaRecorder.AudioSource.VOICE_DOWNLINK
和MediaRecorder.AudioSource.VOICE_UPLINK
进行检查。这个解决方案对我很有效。
1zmg4dgp4#
您可以按如下方式使用MediaRecorder类:
30byixjq5#
您需要使用**MediaRecorder**类,如下所示: