Javascript сделать аудио-блоб

Я тестирую звуковой тег html и хотел бы создать URL-адреса аудио-блобов, как это делают youtube или vimeo, и добавить их в "src", чтобы начать воспроизведение аудио.

Я тестировал с new Blob() а также URL.createObjectURL() но я не знаю, как его использовать.

Я хотел бы сделать что-то вроде: <audio controls src"blob:null/8142a612-29ad-4220-af08-9a31c55ed078"></audio>

Я был бы очень признателен за вашу помощь.

2 ответа

Предположим, у вас есть версия аудио в кодировке base64, подобная этой

data="data:audio/ogg;base64,T2dnUwACAAAAAAAAAADSeWyXAU9nZ1MAAAAAAAAAAAAA0nl";

1. Сначала удалите заголовки base64 (преамбула) и декодируйте его в чистую двоичную форму, в той форме, в которой он находится, как в вашем iPad. Для этого вы можете использовать convertDataURIToBinary - отличный фрагмент от borismus на github.

var binary= convertDataURIToBinary(data);

2. Теперь создайте Blob из двоичного файла; указав тип аудио это

var blob=new Blob([binary], {type : 'audio/ogg'});

3. Теперь создайте URL-адрес BLOB-объекта из этого BLOB-объекта.

var blobUrl = URL.createObjectURL(blob);

Вот и все теперь просто замени src атрибут <source> на этот URL-адрес BLOB-объекта. Если у вас уже есть чистый декодированный двоичный файл, то просто выполните шаг 3

https://jsfiddle.net/sanddune/uubnnr0w/

Винай, спасибо, отличные решения!

Другие вопросы по тегам