2014-11-19 3 views
2

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

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

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

ответ

2

У меня такая же проблема и решена с обновлением Android.

Смежные вопросы