使用 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: false
和 noiseSuppression: false
。
Chrome 和 Firefox (64+) appear to 默认 autoGainControl
为 true
。
Older 版本的 Firefox 默认 autoGainControl
为 false
,noiseSuppression
为 true
,但与所有设备设置一样,默认值可能因浏览器而异浏览器、设备到设备甚至情况,因此如果您关心某个设置,请限制它。
所有三个设置也可以在 Chrome 和 Firefox 中单独控制。
现在有一个 google 扩展可以解决这个问题。
有没有办法通过向应用程序文件应用一些 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: false
和 noiseSuppression: false
。
Chrome 和 Firefox (64+) appear to 默认 autoGainControl
为 true
。
Older 版本的 Firefox 默认 autoGainControl
为 false
,noiseSuppression
为 true
,但与所有设备设置一样,默认值可能因浏览器而异浏览器、设备到设备甚至情况,因此如果您关心某个设置,请限制它。
所有三个设置也可以在 Chrome 和 Firefox 中单独控制。
现在有一个 google 扩展可以解决这个问题。