使用 WebRTC 应用程序禁用自动增益控制

Disabling Auto Gain Conctrol with WebRTC App

有没有办法通过向应用程序文件应用一些 javascript 代码来默认禁用 WebRTC "auto gain control feature"?

我正在使用 simplewebrtc。

您可以使用约束关闭音频处理(对 Chrome 使用 https fiddle):

var constraints = {
  audio: {
    echoCancellation: false,
    noiseSuppression: false,
    autoGainControl: false,
  }
};

navigator.mediaDevices.getUserMedia(constraints)
  .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>

Chrome apparently 指定 echoCancellation: false 时关闭所有音频处理。

Firefox 不这样做 yet,因此现在也包括 autoGainControl: falsenoiseSuppression: false

Chrome 和 Firefox (64+) appear to 默认 autoGainControltrue

Older 版本的 Firefox 默认 autoGainControlfalsenoiseSuppressiontrue,但与所有设备设置一样,默认值可能因浏览器而异浏览器、设备到设备甚至情况,因此如果您关心某个设置,请限制它。

所有三个设置也可以在 Chrome 和 Firefox 中单独控制。

现在有一个 google 扩展可以解决这个问题。

https://chrome.google.com/webstore/detail/disable-automatic-gain-co/clpapnmmlmecieknddelobgikompchkk/related