有没有办法在默认情况下禁用WebRTC“自动增益控制功能”,方法是将一些javascript代码应用到应用程序文件中?
我正在使用simplewebrtc。
答案 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: false
和noiseSuppression: false
(除了Firefox之外,最近添加了依赖于adapter.js的规范夜间)。
Firefox currently tends to默认autoGainControl
至false
和noiseSuppression
至true
,但与所有设备设置一样,默认值可能因浏览器,设备而异设备甚至情况,所以如果您关心设置,请约束它。
所有这三项设置也可以在Chrome和Firefox中单独控制(再次使用adapter.js以避免供应商前缀)。
答案 1 :(得分:0)