Потоковые большие аудиофайлы для API Web Audio - PullRequest
7 голосов
/ 09 июня 2011

Есть ли у кого-нибудь примеры или предложения о том, как организовать потоковую передачу больших аудиофайлов для API-интерфейса Web Audio?Читая спецификацию W3C, они рекомендуют потоковую передачу при больших файлах по сравнению с XMLHTTPRequest (примечание: в настоящее время существует ошибка, препятствующая открытию больших файлов Chromium Issue 71704 )

Примеры, предоставленныеGoogle все показывают использование XMLHTTPRequest для загрузки небольших файлов (<1MB Wave) </p>

Любая помощь будет оценена.

Спасибо

Ответы [ 2 ]

8 голосов
/ 24 августа 2012

Элемент <audio> - лучший способ, поскольку он обрабатывает потоковую передачу и буферизацию под капотом.Начиная с Chrome 18, вы можете использовать <audio> элементы в качестве источников ввода для дальнейшей обработки с createMediaElementSource().Проверьте больше информации здесь:

http://updates.html5rocks.com/2012/02/HTML5-audio-and-the-Web-Audio-API-are-BFFs

5 голосов
/ 01 июля 2011

Это не дает прямого ответа на ваш вопрос, но будет полезно.

В API был добавлен асинхронный метод decodeAudioData.Это все еще будет использовать XHR, но стоит переключиться на него.Новый метод доступен в Chrome 14.

// Use async decoder if it is available.
if (context.decodeAudioData) {
  context.decodeAudioData(arrayBuffer, function(buffer) {
    source.buffer = buffer;
  }, function(e) {
    console.log(e);
  });
} else {
  source.buffer = context.createBuffer(arrayBuffer, false);
}
...