声音webRTC android中的回声和噪音

ume*_*k44 6 android webrtc

我在webRTC上工作我正在本地网络上的两个Android设备之间进行实时流动它对我来说工作得很好,除了声音质量问题,声音中有噪音和回声.如果我在一端使用免提,它会变得更好,但我不想使用免提.

那么我怎样才能改善音质,有哪些技术可以改善音质.它还说webRTC具有内置的回声消除功能,如果不是为什么echo还在那里.

Ale*_*nin 6

您可以在创建音频源时尝试添加特殊的音频约束。它应该看起来像:

MediaConstraints audioConstraints = new MediaConstraints();
audioConstarints.mandatory.add(new MediaConstraints.KeyValuePair("googNoiseSuppression", "true"));
audioConstarints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation", "true"));
Run Code Online (Sandbox Code Playgroud)

有很多与音频功能相关的媒体限制,我建议尝试它们的不同组合,完整列表可以在这里找到https://chromium.googlesource.com/external/webrtc/+/branch-heads/57/webrtc /api/mediaconstraintsinterface.cc


pev*_*uve 1

我猜您正在体验拉森效应,两个麦克风都会重播 2 个音频输出,从而创建无限的音频循环。如果两个设备都在同一个房间,您对此无能为力,但实际上浏览器具有回声消除选项,您可以通过这种方式激活(不确定它们是默认的):

if (window.chrome) {
    audioConstraints = {
        mandatory: {
            echoCancellation: true
        }
    }
} else {
    audioConstraints = {
        echoCancellation: true
    }
}
var constraints = {video: videoConstraints, audio: audioConstraints};
navigator.getUserMedia(constraints, userMediaSuccess, userMediaError);
Run Code Online (Sandbox Code Playgroud)

另外,将本地视频静音,用户显然不需要它。