我正在使用Electron(版本10,Chrome v75(和WebRTC构建一个视频会议应用程序。该应用程序有多个窗口,在每个窗口中,我都有一个与不同应用程序用户的单独RTCPeerConnection。问题是,如果我不使用耳机,就会产生强烈的回声,使应用程序几乎无法使用。
我尝试设置各种getUserMedia
选项,如echoCancellation: true
或googEchoCancellation: true
、echoCancellationType: "browser"/"system"
,但没有一个能抵消来自各种声源的回声。
这个问题只出现在Mac和Linux上,而Windows则非常有效地抑制了回声。
我发现了这个Chromium问题,它更详细地描述了类似的问题。
此外,当我在Chrome+Mac或Linux上试用这款Fiddle时(尽管Chrome并不适合这种情况,请在这里找到更多细节(,我没有看到回声消除的效果,回声仍然存在。然而,在Chrome+Windows或Firefox+任何操作系统上,同样的功能都能完美运行。
Chrome中的AEC(回声消除(真的会考虑所有的声源吗?有人知道解决办法吗?
添加video.volume=0以访问相机并在开始录制时访问。它对我有效
我不确定我是否在回答你的问题,但:Chrome/Firefox没有考虑所有的声音来源。Chrome仅处理RTCPeerConnection音轨。我认为不是在标签之间。
也许我误解了你的问题,因为你似乎认为Windows运行良好。但也许Chrome正在使用一些原生的Windows回声消除功能?
相关链接:
- https://github.com/webrtc/samples/issues/1243
- https://bugs.chromium.org/p/chromium/issues/detail?id=1215049
- https://bugs.chromium.org/p/chromium/issues/detail?id=687574
- https://developer.chrome.com/blog/more-native-echo-cancellation/