2016-03-09 2 views
1

Я хочу создать метроном, используя setInterval. Я хочу иметь возможность достигать высоких значений bpms, например, 300 уд/мин. Даже если файл достаточно короткий, чтобы его можно было сыграть столько раз, сколько потребуется, он будет очень легко забивать . Кроме того, у многих браузеров есть проблемы с короткими аудиофайлами - Safari для MP3 и Firefox для WAV. Я попытался использовать несколько файлов, как показано ниже, но безрезультатно.Слушайте (короткий) звук очень часто?

metronome = setInterval(function() { 
     if (!tick.played) { 
      tick.play(); 
     } else { 
      tick2.play(); 
     } 
    }, 200); // = 300 bmp 
  1. Как я могу играть короткий звуковой файл очень часто?
  2. Какое максимальное расширение файла для этого?
+1

Я создал скрипку: http://jsfiddle.net/Family/o5juz57p/ Он использует метод увеличения точности таймера отсюда: http://www.sitepoint.com/creating-accurate-timers-in- javascript/и воспроизводит встроенный wav-файл, что может помочь. По-прежнему, похоже, он не очень точен, поэтому я не хотел говорить это как ответ. – Family

ответ

2

Использование Web Audio API для точного времени, набор JavaScriptTimeout может иметь смещение до 10 мс. В демо-версии метронома используется audioContext.currentTime. См. Это article для получения подробной информации о планировании аудио. См. Это Plunker для демонстрации веб-аудио Metronome.

Смежные вопросы