Android MediaRecorder.AudioSource中语音通信和麦克风的区别

Android MediaRecorder.AudioSource中语音通信和麦克风的区别,android,audio-recording,android-mediarecorder,android-audiorecord,Android,Audio Recording,Android Mediarecorder,Android Audiorecord,我正在使用媒体记录器在android中使用语音通信和麦克风模式记录通话 RECORD\u SOURCE=MediaRecorder.AudioSource.VOICE\u通信; //RECORD_SOURCE=MediaRecorder.AudioSource.MIC; iAudioRecorder=新的音频记录(记录源、本机采样率、单声道中的AudioFormat.CHANNEL、AudioFormat.ENCODING、PCM、记录单元) 我看到,对于某些设备,MIC录制的音频数据的增益远远

我正在使用媒体记录器在android中使用
语音通信
麦克风
模式记录通话

RECORD\u SOURCE=MediaRecorder.AudioSource.VOICE\u通信;
//RECORD_SOURCE=MediaRecorder.AudioSource.MIC;
iAudioRecorder=新的音频记录(记录源、本机采样率、单声道中的AudioFormat.CHANNEL、AudioFormat.ENCODING、PCM、记录单元)

我看到,对于某些设备,
MIC
录制的音频数据的增益远远大于
语音通信
(约2/3倍)。此外,通过
语音通信捕获的背景音乐也不如
麦克风

为什么这两种录制模式的音频质量(如增益、响应性)不同?

根据for,对使用语音通信捕获的音频应用了一些预处理,如回声消除、噪声抑制,这反过来会对数据造成一些衰减。此外,在进行这种预处理时,由于这种衰减,低振幅的音频信号变得更加微弱。因此,我们觉得有些设备的背景音频太低时会消失


另一点是不同设备的不同特性。从开始,这完全取决于设备制造商,他们可以自由决定哪些预处理应在哪些模式下工作以及如何工作。

我已通过
instance.setEnabled(false)手动关闭预处理
,但它不适用于某些设备。低配置设备(如walton primo)在
话筒和
语音通信方面的性能(如增益、响应性)几乎相同。但是像三星这样的高配置设备显示出的区别是,对于
语音通信
的远程音乐
麦克风
的低增益和低响应性。可能是
instance.setEnabled(false)不起作用。那个么我怎样才能开始预处理呢?同样,制造商有权改变API特性。我猜,在您的情况下,对于某些模式和设备,该调用只是被丢弃。我确实在一些设备上发现了[AudioRecord.read](,int,int))的不同行为。