Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AudioSource.VOICE_通信不';t在所有支持语音通信的设备上工作_Android_Audiorecord_Echo Cancellation - Fatal编程技术网

Android AudioSource.VOICE_通信不';t在所有支持语音通信的设备上工作

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通信的设备的回退,它可以工作,但不需要回声消除,这是该设备所需要的,也应该支持的

我使用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的更新解决了这个问题。

你能解释一下你什么时候使用语音通信吗?在哪种应用程序中?是通过互联网进行视频/音频聊天吗?