Получение текущего времени воспроизведения в интервале с использованием веб-аудио

#javascript #web-audio-api

Вопрос:

Я пишу приложение, использующее веб-аудио для воспроизведения различных областей аудиотрека в виде циклов. Допустим, у меня есть одна область между 1 и 4 годами, а другая между 10 и 14 годами. Я хочу, чтобы пользователь вживую мог прыгать между циклами.

Как это лучше всего сделать с максимальной точностью? Какова наилучшая практика для получения текущего времени в интервале?

Ответ №1:

Вы можете установить интервал, который currentTime будет часто:

 const interval = setInterval(() => {
  if (baseAudioContext.currentTime < 10 amp;amp; baseAudioContext.currentTime > 4) {
    // here you should seek to sec 1s
  }
  else if (baseAudioContext.currentTime > 14) {
    // here you should seek to sec 10s
  }
}, 20); // here you can change the interval
 

Важный момент заключается в том, чтобы найти подходящее место для очистки этого интервала.

Комментарии:

1. Я делаю нечто подобное с requestAnimationFrame. Но нет ли лучшего решения в рамках API?

2. @arpo Я не смог найти лучшего решения