我在webRTC上工作我正在本地网络上的两个Android设备之间进行实时流动它对我来说工作得很好,除了声音质量问题,声音中有噪音和回声.如果我在一端使用免提,它会变得更好,但我不想使用免提.
那么我怎样才能改善音质,有哪些技术可以改善音质.它还说webRTC具有内置的回声消除功能,如果不是为什么echo还在那里.
您可以在创建音频源时尝试添加特殊的音频约束。它应该看起来像:
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
我猜您正在体验拉森效应,两个麦克风都会重播 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)
另外,将本地视频静音,用户显然不需要它。
| 归档时间: |
|
| 查看次数: |
3892 次 |
| 最近记录: |