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

jho*_*ano 7 webrtc getusermedia simplewebrtc

有没有办法默认禁用WebRTC"自动增益控制功能",通过应用一些JavaScript代码到应用程序文件?

我正在使用simplewebrtc.

jib*_*jib 10

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

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>";
Run Code Online (Sandbox Code Playgroud)
<audio id="audio" controls autoplay></audio><br>
<div id="div"></div>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
Run Code Online (Sandbox Code Playgroud)

Chrome 显然会在echoCancellation: false指定时关闭所有音频处理.

Firefox没有做到这一点还没有,所以包括autoGainControl: falsenoiseSuppression: false以及现在(最近增加的规范依赖于adapter.js这里除了在Firefox夜间).

火狐目前倾向于默认autoGainControltrueautoGainControlfalse,但像所有设备设置,默认设置可从浏览器到浏览器,设备到设备,甚至情况有所不同,因此,如果您关心的设置,限制它.

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