我目前正在从事 webrtc 项目,并且在不使用耳机或外部麦克风时遇到音频回声问题,是否有任何解决方法或解决方法
问问题
15347 次
3 回答
6
WebRTC 中应该默认启用回声消除。您可以将其关闭以听到不同之处:
navigator.mediaDevices.getUserMedia({ audio: { echoCancellation: false } })
.then(stream => audio.srcObject = stream)
.catch(e => log(e));
var log = msg => div.innerHTML += msg + "<br>";
<audio id="audio" controls autoplay></audio><br>
<div id="div"></div>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
回声消除技术可以存在于许多层面——浏览器中的软件、操作系统中,有时甚至是你的硬件麦克风——有时这些技术会相互干扰。
不了解您的系统,我建议您检查系统的声音设置,以确保您没有在太多级别上进行有用的处理。
例如,在 OSX 上,声音设置下有一个使用环境降噪功能,当我关闭WebRTC 时,它对我来说效果更好。您只希望一位厨师同时尝试消除回声。
如果您正在为其他客户开发网站,那么您在软件方面无能为力,我希望大多数系统都能正常工作,即使不是完美的,也能很好地工作,尽管耳机总是会更好。
于 2016-05-23T14:26:01.327 回答
1
目前webrtc中没有回声消除的最佳解决方案,所以我找到的最佳解决方案是使用AEC软件,或者内置回声消除软件
于 2016-06-10T05:02:36.490 回答
0
即使有视频回声取消约束,我也遇到了同样的问题
我终于可以删除回声/噪音,将属性添加muted="true"
到您的本地视频元素并将音量设置为 0document.getElementById("localVideo").volume = 0
这不会阻止您的 localStream 发出声音,但它会消除您在本地的噪音。
于 2020-05-09T17:11:03.187 回答