javascript - 减少javascript中麦克风输入的音频播放延迟?
问题描述
我需要在javascript(来自浏览器)中从麦克风捕获一些输入并实时播放音频。但是我得到的延迟真的很难看(大约 200 毫秒)。
我怎样才能减少这个?javascript 是一个不错的选择,可以预期像 20 毫秒这样的延迟吗?
我只是尝试使用getUserMedia()
和AudioContext
utils捕获音频Web Audio API
并播放它:
const constraints = {
video: false,
audio: {
echoCancellation: false,
noiseSuppression: false,
autoGainControl: false
}
}
var context = new AudioContext({
latencyHint: 'interactive',
sampleRate: 44100,
});
navigator.mediaDevices.getUserMedia(constraints)
.then((stream) => {
var source = context.createMediaStreamSource(stream);
source.connect(context.destination);
});
欢迎提出任何建议以最大程度地减少延迟。谢谢
解决方案
不知道这是否会有所帮助,但如果您将音频发送到 WebAudio,则绝对应该关闭回声消除和其他输入处理。有关详细信息,请参阅echoCancellation 约束。您可能还想关闭增益控制和噪声抑制。
推荐阅读
- postgresql - 在 docker-compose 文件中创建多个 PostgreSQL 数据库
- docker - Docker 系统尚未使用 systemd 作为 init 系统启动
- c++ - 当需要特定于类型参数的代码时是否应该使用模板?
- reactjs - 如何在反应中将值绑定到动态控件
- python - numpy 数组到数组中的唯一数字
- java - 如何使用 Java 中的 Hibernate 将 utf-8 字符集保存在非 utf-8 Oracle 数据库中?
- python - 基于分类列和另一列的值创建列
- django - 如何对 Django Rest Framework 序列化程序的创建方法进行单元测试?
- javascript - 谁标准化了 JavaScript 语言
- angular - 离子命令中的堆内存不足错误 - npm run build --aot