AudioSource.VOICE_COMMUNICATION не работает на всех устройствах, которые поддерживают VOICE_COMMUNICATION

Я использую AudioSource.VOICE_COMMUNICATION в качестве источника в моем экземпляре AudioRecord для всех устройств, которые поддерживают это. Это хорошо работает на всех моих планшетах, кроме одного. "Acer Iconia Tab 8".

Доступны AcousticEchoCanceler, AutomaticGainControl, NoiseSuppressor. Версия Android - 4.4.2

Приемное устройство получает только аудиоданные с гудением. Если я использую AudioSource.MIC, который используется в качестве запасного варианта для устройств, которые не поддерживают AudioSource.VOICE_COMMUNICATION, это работает, но без EchoCancelation, которые необходимы и которые должны поддерживаться этим устройством.

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);
}

У кого-нибудь есть идеи по поводу этого странного поведения?

1 ответ

Решение

Я получил ту же проблему и решил ее обновлением Android.

Другие вопросы по тегам