10

有没有办法通过将一些javascript代码应用于应用程序文件来默认禁用WebRTC“自动增益控制功能”?

我正在使用 simplewebrtc。

4

2 回答 2

19

您可以使用约束关闭音频处理(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显然会在指定时关闭所有音频处理echoCancellation: false

Firefox还没有这样做,所以现在也包括autoGainControl: false在内noiseSuppression: false

Chrome 和 Firefox (64+)似乎都默认autoGainControltrue.

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

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

于 2016-05-19T19:11:55.027 回答
1

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

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

于 2020-12-07T19:48:47.147 回答