webrtc android 视频通话声音有刺耳的声音和回声

webrtc android video call sound has screeching sound and echos

我正在尝试使用 this repo 作为基础来实现 VideoCall 功能。我一切正常,但现在的问题是音频很差,有刺耳的声音和回声。音频几乎听不见。在 callee/caller 中创建音频源时,我使用了适当的约束。这是我创建音频源的方法-

    MediaConstraints audioConstraints = new MediaConstraints();
    audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googNoiseSuppression", "true"));
    audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation", "true"));
    audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("echoCancellation", "true"));
    audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair("noiseSuppression", "true"));
    AudioSource audioSource = peerConnectionFactory.createAudioSource(audioConstraints);
    localAudioTrack = peerConnectionFactory.createAudioTrack("101", audioSource);

请帮我解决这个问题。

问题是在启用远程音轨时我设置了这些行

AudioTrack audioTrack = mediaStream.audioTracks.get(0);
audioTrack.setEnabled(true);
audioTrack.setVolume(100); // culprit

我将音量设置为 100 的最后一行是问题所在。删除它就可以了。