Мне нужно захватить некоторые входные данные с микрофона в 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);
});
Любые предложения приветствуются, чтобы минимизировать задержку.Спасибо