Android MediaRecorder.AudioSource中语音通信和麦克风的区别
我正在使用媒体记录器在android中使用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录制的音频数据的增益远远
语音通信
和麦克风
模式记录通话
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))的不同行为。