Код: Выделить всё
source = audioCtx.createMediaStreamSource(stream);
source.connect(audioCtx.destination);
В официальной спецификации W3C говорится о задержке 3-50 мс. 30-50 мс это то, что мне нужно. Мне не особо нужны 3-5 мс.
Я пробовал играть с таким параметром задержки
Код: Выделить всё
navigator.mediaDevices.getUserMedia({
audio: {
latency: 0.05,
echoCancellation: false,
mozNoiseSuppression: true,
mozAutoGainControl: false
}
});
Мой полный пример доступен здесь.
https://jsfiddle.net/xfq3ykp7/71/
Это браузер/аппаратное обеспечение ограничение или я что-то делаю не так? Может ли кто-нибудь услышать некоторую задержку в моем примере? Обычно это легко проверить, ударив по столу возле микрофона. за 200 мс наблюдается заметная задержка между ударом и его звуком.
Мне не нужны сложные вещи вроде запланированных аудиособытий и т. д., которые нужны для игр или онлайн-музыкальных инструментов. Мне просто нужно уменьшить задержку в моем простом примере с 200 мс до 50 мс или в идеале до 20 мс.
ОБНОВЛЕНИЕ 1:
С этим изменением кода я мог бы сделать 70 мс в Windows 10 и 100 мс в Windows 7 в Firefox
Код: Выделить всё
var p = navigator.mediaDevices.getUserMedia({
audio: {
latency: 0.02,
echoCancellation: false,
mozNoiseSuppression: false,
mozAutoGainControl: false
}
});
Подробнее здесь: https://stackoverflow.com/questions/444 ... pi-latency
Мобильная версия