WebRT C Android эхоподавление - PullRequest
1 голос
/ 20 июня 2020

Я хочу реализовать голосовую и видеосвязь в android. Я использовал этот пример проекта в качестве ссылки: Amazon Kinesis Video Streams Android WebRT C SDK Проблема в том, что микрофон улавливает удаленные звуки, что приводит к сильному эхо-эффекту. Мы используем эту версию:

org.webrtc:google-webrtc:1.0.30039

AudioManager находится в этом режиме:

audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(false);

Это то, что мы пробовали без какого-либо эффекта:

WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(true);
WebRtcAudioUtils.useWebRtcBasedAcousticEchoCanceler();
WebRtcAudioUtils.setWebRtcBasedAutomaticGainControl(true);
WebRtcAudioUtils.useWebRtcBasedAutomaticGainControl();
WebRtcAudioUtils.setWebRtcBasedNoiseSuppressor(true);
WebRtcAudioUtils.useWebRtcBasedNoiseSuppressor();
WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(true);

и это :

audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation", "true"));
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation2", "true"));
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googDAEchoCancellation", "true"));

audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googTypingNoiseDetection", "true"));

audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googAutoGainControl", "true"));
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googAutoGainControl2", "true"));

audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googNoiseSuppression", "true"));
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googNoiseSuppression2", "true"));

audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googAudioMirroring", "false"));
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googHighpassFilter", "true"));

Я действительно потерялся здесь. Как активировать эхоподавление в android?

1 Ответ

0 голосов
/ 22 июня 2020

Используйте нижеприведенные методы JavaAudioDeviceModule.class

setUseHardwareAcousticEchoCanceler(false)       
setUseHardwareNoiseSuppressor(false) 

(Для справки, пожалуйста, посмотрите createJavaAudioDevice () из PeerConnectionClient. java - Официальный пример оформления android в googlesource. com Вы также можете проверить проект GitHub Some sh (https://github.com/TheSomeshKumar/AndroidWebRTCGradle).

...