Показать сообщение отдельно
  #5 (permalink)  
Старый Вчера, 10:44
Новичок на форуме
Отправить личное сообщение для hstq Посмотреть профиль Найти все сообщения от hstq
 
Регистрация: 01.10.2026
Сообщений: 2

В последнем примере инициализация стоит внутри audio.onplay. При повторном воспроизведении код снова создаёт AudioContext и пытается привязать тот же audio через createMediaElementSource. Повторная привязка приводит к InvalidStateError.

Контекст, source и analyser нужно создать один раз при первом пользовательском запуске, а дальше менять audio.src и при необходимости вызывать audioCtx.resume(). Цикл отрисовки тоже должен быть один: иначе каждый play оставляет новый setInterval. Для анимации удобнее requestAnimationFrame с остановкой при pause/ended.
Ответить с цитированием