Оффлайн / не в реальном времени рендеринг с API Web Audio
Я работаю над веб-приложением, в котором пользователи могут упорядочивать аудиосэмплы и, при желании, применять эффекты к музыкальным шаблонам, которые они создают с помощью API Web Audio. Шаблоны хранятся в виде данных JSON, и я хотел бы провести некоторый анализ отрендеренного звука каждой стороны шаблона на стороне сервера. Это оставляет мне два варианта, насколько я вижу:
Запустите мой собственный код рендеринга на стороне сервера, стараясь сделать его максимально точным для рендеринга в браузере. Возможно, я мог бы даже вытащить код Web Audio из проекта Chromium и изменить его, но это может показаться много работы.
Выполните рендеринг на стороне клиента, надеюсь, быстрее, чем в реальном времени, а затем отправьте рендеринг аудио на сервер. Это идеально (и СУХОЙ), потому что для рендеринга паттернов используется только один движок.
Возможно РешениеЭтот вопрос приведи меня кэтот пример кода в хранилище ChromiumКажется, это указывает на то, что автономная обработка возможна. Уловка, кажется, строитwebkitAudioContext
с некоторыми аргументами (обычно используется конструктор с нулевым аргументом). Ниже приведены мои предположения о том, что означают параметры:
new webkitAudioContext(2, // channels
10 * 44100, // length in samples
44100); // sample rate
Я немного адаптировал образец и протестировал его в Chrome 23.0.1271.91 для Windows, Mac и Linux.Вот живой примери результаты (откройте консоль Javascript Dev Tools, чтобы увидеть, что происходит):
Mac -Оно работает!!Windows -ПРОВАЛ - SYNTAX_ERR: исключение DOM 12Linux -ПРОВАЛ - SYNTAX_ERR: исключение DOM 12webkitAudioContext
Конструктор, который я описал выше, вызывает исключение в Windows и Linux.
Оффлайн рендеринг будетидеальный за то, что я пытаюсь сделать, но я нигде не могу найти документацию, и поддержка не идеальна. У кого-нибудь есть больше информации об этом? Должен ли я ожидать поддержки для этого в Windows и / или Linux в ближайшее время, или я должен ожидать поддержкиисчезать скоро на Mac?