Превратить массив байтов в звук - PullRequest
5 голосов
/ 04 августа 2011

У меня есть mp3-файл в виде байтового массива. Как включить его обратно в звук и играть с использованием JavaScript?

Спасибо

Ответы [ 2 ]

3 голосов
/ 04 августа 2011

Насколько я знаю, это определенно нетривиально.

  1. Вы можете превратить массив в URI данных , а затем воспроизвести его в обычном режиме.
  2. Вы можете отправить его обратно на сервер, чтобы выполнить кодирование и нормально воспроизвести его.
  3. Вы можете использовать модный API

2 кажется неэффективным, 3 требует специальной поддержки браузера. Итак, используйте 1. Я не пробовал, но посмотрите http://www.bitsnbites.eu/?p=1. Вы должны ожидать, что это будет намного менее эффективно, чем нативный код.

2 голосов
/ 09 августа 2011

Это всего лишь продолжение ответа Филиппа Дж. Ф.:

"1", вероятно, будет работать нормально, без каких-либо хитрых вещей, описанных в ссылке на bitsnbites.Поскольку mp3-файлы без заголовка, вы можете передавать данные на URL-адрес «как есть», без заголовка WAVE.Итак, путь (измененный со страницы bitsnbites):

Создайте строку для воспроизведения в качестве URI DATA: Инициализируйте строку с помощью «data: audio / mpeg; base64», добавьте байтовый массив mp3 какотформатированная строка в кодировке base64 с использованием функции btoa ().Затем вы можете вызвать этот URI данных, чтобы воспроизвести его.

Ссылки:

https://developer.mozilla.org/en/DOM/window.btoa

http://en.wikipedia.org/wiki/Data_URI_scheme

...