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