我用WebRTC在两个Android设备之间做实时流。有时,对于某些用户,声音中会有回声。我在两端都使用免提(扬声器)。
那我怎么才能消除回声呢?也许我的代码有问题?
尝试使用:
if (!isSpeakerphoneOn)
{
audioManager.abandonAudioFocus(null);
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(false);
}
else
{
audioManager.requestAudioFocus(null, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);
}
在使用WhatsApp时,我会首先尝试检查回声是否也存在。如果是,则回波与设备相关,可能难以修复。
如果不是,可能与音频模式有关。建立通话时,确保将音频模式设置为< code > MODE _ IN _ COMMUNICATION :
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_COMMUNICATION);