При нажатии звука в веб-аудио api вы можете установить время, когда звук начнется с source.start(startTime);
. Однако мне интересно, насколько это точно. Я знаю, что setTimeout()
просто введите код, который будет выполнен в очереди событий. Я предполагаю, что это то, что делает веб-аудио api, но это только предположение. Таким образом, между ними не было бы никакой разницы.Является ли веб-аудио api более точным, чем setTimeout
Я попытался запустить какой-то длительный процесс перед воспроизведением звука, и звук действительно задерживается.
//...
source.start(startTime + 0.2);
//....
let i = 0;
while(i < 100000){
console.log("p" + i);
i++;
}
Так что делает звук апи веб использует setTimeout
под капотом. Если бы я мог сделать что-то более отзывчивым, используя веб-рабочего? Я знаю, что у веб-рабочего есть доступ к setTimeout, но я не уверен, что он может получить доступ к веб-аудио api.
Из док:
Аудио работники обеспечивают возможность прямого сценария обработки звука быть сделано в контексте веб-работника, и определяются парой интерфейсов (новый по состоянию на 29 августа 2014 .) Они не реализованы в любых браузерах еще
Это только адреса точки обработки звука, я не уверен, что включает в себя только играть аудио.
Благодарим за подробный ответ, это было полезно. Я не уверен, что я вижу использование аудиоработников, или, может быть, я точно это сделаю. Например, в тот момент, когда я хочу остановить звуки с эффектом «release» (звук постепенно становится ниже), я использую 'setTimeout'. Если бы у меня был веб-рабочий, я бы мог сделать это в аудиоработнике вместо основного потока и быть более точным. Это неважно, потому что это нечто прогрессивное, но мне было бы хорошо. Надеюсь, это скоро будет реализовано. Еще раз спасибо. – Ced