Android AudioSource.VOICE_通信不';t在所有支持语音通信的设备上工作
我使用AudioSource.VOICE_COMMUNICATION作为支持此功能的所有设备的AudioRecord实例中的源。 这在我所有的平板电脑上都很有效,除了一个。“Acer Iconia Tab 8” 可提供声学控制器、自动增益控制、噪声抑制器。 Android版本是4.4.2 接收设备仅在嗡嗡声中获取音频数据。 如果我使用AudioSource.MIC,它用于不支持AudioSource.VOICE\u通信的设备的回退,它可以工作,但不需要回声消除,这是该设备所需要的,也应该支持的Android AudioSource.VOICE_通信不';t在所有支持语音通信的设备上工作,android,audiorecord,echo-cancellation,Android,Audiorecord,Echo Cancellation,我使用AudioSource.VOICE_COMMUNICATION作为支持此功能的所有设备的AudioRecord实例中的源。 这在我所有的平板电脑上都很有效,除了一个。“Acer Iconia Tab 8” 可提供声学控制器、自动增益控制、噪声抑制器。 Android版本是4.4.2 接收设备仅在嗡嗡声中获取音频数据。 如果我使用AudioSource.MIC,它用于不支持AudioSource.VOICE\u通信的设备的回退,它可以工作,但不需要回声消除,这是该设备所需要的,也应该支持的
final int bufSize = Math.max(1 * 2 * 8000, AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT));
AudioRecord rec;
try {
final int src = MediaRecorder.AudioSource.VOICE_COMMUNICATION;
rec = new AudioRecord(src, 8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufSize);
} catch (IllegalArgumentException e) {
Log.d("AudioRecorder", "echo cancellation NOT enabled (old android version)");
final int src = MediaRecorder.AudioSource.MIC;
rec = new AudioRecord(src, 8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufSize);
}
有人知道这种奇怪的行为吗?我也遇到了同样的问题,通过Android的更新解决了这个问题。你能解释一下你什么时候使用语音通信吗?在哪种应用程序中?是通过互联网进行视频/音频聊天吗?