Как заставить анализатор WebAudio не зависать при остановке звука

Я использую API WebAudio для воспроизведения и визуализации звука, и мой код основан на этом примере. Проблема в том, что при приостановке звука анализатор не обновляется. если ты getByteFrequencyData Вы можете видеть, что он возвращает ненулевые значения, даже при отсутствии звука. Я хочу, чтобы анализатор постоянно обновлял данные, когда звук был приостановлен, как это делал бы любой реальный визуализатор.

Я знаю, что это не проблема, когда вы используете <audio> элемент + createMediaElementSource вместо createBufferSource но последний имеет лучшую поддержку браузера.

1 ответ

Просто продолжайте звонить requestAnimationFrame для вашего цикла рисования, и продолжайте рисовать, используя данные из AnalyserNode,

Кусок кода, который делает эту демонстрацию "заморозкой", таков:

if (this.isPlaying) {
  requestAnimFrame(this.draw.bind(this));
}

Если вы бросите if(Работай как хочешь.

Другие вопросы по тегам