Привет Я пытаюсь добавить функцию VOIP в приложение Android. Для этого мне нужно аннулирование акустического эха.
Я видел официальную документацию для AcousticEchoCanceler here.
Я использую этот кусок кода для Эхоподавления:Android AcousticEchoCanceler NOT Working
if(AcousticEchoCanceler.isAvailable()) {
echoCanceler = AcousticEchoCanceler.create(mAudioRecord.getAudioSessionId());
echoCanceler.setEnabled(true);
}
Но это, кажется, не помогает вообще. isAvailable() возвращает true и создаются объекты echoCanceler. Если я запрашиваю echoCanceler.getEnabled(), он также возвращает true.
Даже если я делаю пример приложения с помощью AudioRecord и AudioTrack, это не сработает. Я услышал много эха.
Если установить источник AudioRecord как:
android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
Я вижу эхо будет отменено в случае Nexus 5 (для Android версии 5 и 6).
(Я не использую AcousticEchoCanceler, когда я устанавливаю источник как VOICE_COMMUNICATION) Однако с той же версией Android тот же метод не работает с устройствами Samsung Galaxy S4 и Samsung Note 4 и т. Д.
Использование echo Cancellation Libraries (например, libspeexdsp и т. Д.) НЕВОЗМОЖНО (поскольку я работаю над существующим проектом).
Пожалуйста, помогите как можно скорее.
Большое спасибо.
Любые удачи в этом? У меня такая же проблема. Устройства, которые имеют AcousticEchoCanceler и, кажется, работают: Nexus 5 (Android версия: 6.0.1) Moto X (Android версия: 5.1.1) Dont похоже на работу: Samsung Galaxy Гранд Prime (Android версии: 5.1. 1) Samsung Galaxy S6Edge (версия для Android: 5.1.1) HTC One – rmp251
Попробуйте настроить аудиорежим на 'MODE_IN_COMMUNICATION'. –
Вивек, это была проблема в моем случае! – rmp251