Dancer.js

Dancer.js — высокуровневый аудио API, пригодный для использования, как в Mozilla Audio Data API, так и в Webkit Web Audio API с обратной поддержкой Flash.

Пример Скачать (.zip, 12 Мб)

Особенности

  • Можно использовать в режиме реального времени для визуализации аудио-данных и данных частот сигнала
  • Dancer может получать аудио с любого существующего источника звука
  • Автоматическое обнаружение ударов в визуализации
  • Простые обратные вызовы и события на любой части мелодии
  • Поддержка Web Audio (webkit), Audio Data (mozilla) и Flash (v9+)
  • Расширяемый фреймворк, поддерживающий плагины

Методы Dancer

Установка

load( source ) определяет источник аудио для экземпляра dancer. source может быть аудио-элементом или объектом со свойством src и массивом codecs. Примеры ввода:

Управление

Все элементы управления возвращают this.

  • play() — воспроизводит аудио и визуализацию танца.
  • pause() — пауза.
  • setVolume() — устанавливает громкость проигрывания аудио.

Методы получения данных

  • getVolume() — возвращает нормализованное значение (от 0 до 1) текущей громкости.
  • getTime() — возвращает текущее время.
  • getProgress() — возвращает значение загрузки аудио от 0 до 1.
  • getWaveform() — возвращает массив данных осциллограммы (Float32Array (1024))
  • getSpectrum() — возвращает массив данных частот (Float32Array (512)).
  • getFrequency( freq [, endFreq ] ) — возвращает величину частоты или среднее по диапазону частот.
  • isLoaded() — возвращает логическое значения загрузки экземпляра dancer.
  • isPlaying() — возвращает логическое значение текущего состояния проигрывания экземпляра dancer.

Разделы

Все методы, в том числе обратные вызовы, возвращают this.

  • after( t, callback ) — инициирует обратный вызов на каждом кадре после времени t.
  • before( t, callback ) — инициирует обратный вызов на каждом кадре перед временем t.
  • between( t0, t1, callback ) — инициирует обратный вызов на каждом кадре между временем t0 и t1.
  • onceAt( t, callback ) — инициирует единичный обратный вызов на времени t.

Привязка

Основные публикации связываются в экземпляре dancer. update и loaded являются предопределенными событиями, которые вызываются фреймворком и доступны на каждом кадре/фрейме (update) и при загрузке аудио-файла (loaded).

  • bind( name, callback ) — привязка обратного вызова с именем name. Этот метод можно вызывать несколько раз, чтобы привязать несколько обратных вызовов одного и того же имени.
  • unbind( name ) — отвязка всех обратных вызовов с именем name.
  • trigger( name ) — запускает все обратные вызовы с именем name.

Импульс

Импульсы появляются тогда, когда амплитуда (нормализованные значения между 0 и 1) указанной частоты или амплитуда на указанном диапазоне больше, чем минимальный порог или амплитуда, зарегистрированная ранее.

  • createKick( options ) — создает новый экземпляр импульса, связанный с экземпляром dancer. Опции представлены ниже.

    • frequency — частота (элемент спектра) для проверки шипа. Может быть единичным числом (number) или диапазоном (двумерный массив). По умолчанию: [ 0, 10 ]
    • threshold — Минимальная амплитуда частотного диапазона для определения амплитуды. По умолчанию: 0.3
    • decay — скорость, с которой амплитуда ранее зарегистрированного импульса уменьшается на каждом фрейме. По умолчанию: 0.02
    • onKick — обратный вызов, запускаемый при обнаружении импульса.
    • offKick — вызывается, когда нет импульса на текущем фрейме.

Статические методы Dancer

  • addPlugin( name, fn ) — добавляет плагин с именем name с инициализируемой функцией fn
  • isSupported() — возвращает строку с webaudio, audiodata или flash. Возвращает пустую строку, если браузер не поддерживает какой-либо из методов. Возвращает null, если браузер не поддерживает типизированные массивы.
  • canPlay( type ) — возвращает true или false, определяя, может ли браузер воспроизводить аудио-файлы указанного типа type, который может быть 'mp3', 'ogg', 'wav' или 'aac'.
  • setOptions( options ) — принимает набор пар «ключ-значение» для установки параметров.
  • version — свойство объекта Dancer, которое возвращает строку текущей версии Dancer.

Параметры Dancer

  • flashSWF — путь к soundmanager2.swf. Требуется поддержка flash.
  • flashJS — путь к soundmanager2.js. Требуется поддержка flash.

Методы экземпляра импульс

Эти методы могут быть вызваны на экземпляре импульса для запуска обратных вызовов.

  • on() — включает обратные вызовы на экземпляре импульса
  • off() — выключает обратные вызовы
  • set( options ) — установка параметров

Пример

Чтобы увидеть результаты работы плагина, посмотрите папку examples/.

Требования

HTML5 с Web Audio или Audio Data поддерживаются браузерами Chrome и Firefox. Для остальных браузеров функционал реализован через flash технологию.

Чтобы включить flash, вам необходимо указать для flashSWF путь к soundmanager2.swf и для flashJS путь к soundmanager2.js. Оба файла в папке lib/.

Зависимости

  • dsp.js — подмножество dsp.js (fft), используется для быстрого преобразования Фурье (Включено в Dancer)
  • flash_detect — определение поддержки flash (Включено в Dancer)
  • soundmanager2 — soundmanager2 используется для обратной поддержки flashlib/)


Оставить комментарий