Задержка API веб-аудио JavascriptHtml

Программисты Html
Ответить
Anonymous
 Задержка API веб-аудио Javascript

Сообщение Anonymous »

Я хочу создать программу на Javascript для обработки звука с микрофона. Но когда я привожу простой пример, например, получаю звук с микрофона и воспроизвожу его без какой-либо обработки, вот так

Код: Выделить всё

source = audioCtx.createMediaStreamSource(stream);
source.connect(audioCtx.destination);
Я получаю задержку 200 миллисекунд между входным и выходным звуком. Я пробовал использовать Google Chrome и Firefox на двух разных компьютерах с Windows 7 и Windows 10, и везде все выглядит одинаково. Это число (200 мс) я получил путем записи и анализа звука внешним устройством, а не только ушами.

В официальной спецификации W3C говорится о задержке 3-50 мс. 30-50 мс это то, что мне нужно. Мне не особо нужны 3-5 мс.

Я пробовал играть с таким параметром задержки

Код: Выделить всё

navigator.mediaDevices.getUserMedia({
audio: {
latency: 0.05,
echoCancellation: false,
mozNoiseSuppression: true,
mozAutoGainControl: false
}
});
но похоже, что Chrome и FireFox его игнорируют.

Мой полный пример доступен здесь.

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
}
});
Благодаря поддержке Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=1375466). Но говорят, что 30 мс должно быть возможно. Вопрос остается открытым: «Как добиться задержки 30 мс в Windows?» и «Какие требования к оборудованию?».

Подробнее здесь: https://stackoverflow.com/questions/444 ... pi-latency
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»