Как заставить анализатор WebAudio не зависать при остановке звука
Я использую API WebAudio для воспроизведения и визуализации звука, и мой код основан на этом примере. Проблема в том, что при приостановке звука анализатор не обновляется. если ты getByteFrequencyData
Вы можете видеть, что он возвращает ненулевые значения, даже при отсутствии звука. Я хочу, чтобы анализатор постоянно обновлял данные, когда звук был приостановлен, как это делал бы любой реальный визуализатор.
Я знаю, что это не проблема, когда вы используете <audio>
элемент + createMediaElementSource
вместо createBufferSource
но последний имеет лучшую поддержку браузера.
1 ответ
Просто продолжайте звонить requestAnimationFrame
для вашего цикла рисования, и продолжайте рисовать, используя данные из AnalyserNode
,
Кусок кода, который делает эту демонстрацию "заморозкой", таков:
if (this.isPlaying) {
requestAnimFrame(this.draw.bind(this));
}
Если вы бросите if(
Работай как хочешь.