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

时间:2016-05-19 14:50:17

标签: webrtc getusermedia simplewebrtc

有没有办法在默认情况下禁用WebRTC“自动增益控制功能”,方法是将一些javascript代码应用到应用程序文件中?

我正在使用simplewebrtc。

2 个答案:

答案 0 :(得分:8)

您可以使用约束来关闭音频处理(对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(除了Firefox之外,最近添加了依赖于adapter.js的规范夜间)。

Firefox currently tends to默认autoGainControlfalsenoiseSuppressiontrue,但与所有设备设置一样,默认值可能因浏览器,设备而异设备甚至情况,所以如果您关心设置,请约束它。

所有这三项设置也可以在Chrome和Firefox中单独控制(再次使用adapter.js以避免供应商前缀)。

答案 1 :(得分:0)