Воспроизведение MP3 файла, сохраненного как blob

Проще говоря, я хотел бы воспроизвести файл blob MP3 в Firefox.

У меня есть доступ к самому блобу: blob (нарезанный типом mime audio/mpeg3) и его URL: blobURL = window.URL.createObjectURL(blob).

Я пробовал с:

  • аудиоплеер HTML5:

    <audio controls="controls">
        <source src="[blobURL]" type="audio/mp3">
    </audio>
    

    но я получаю предупреждение в Firebug, говорящее мне, что Firefox не может читать файлы типа audio/mpeg3.

  • несколько библиотек аудиоплееров (SoundManager, JPlayer и т.д.)., но ни один из них не позволяет использовать URL-адреса blob в качестве входных данных.

Я делаю это неправильно? Или кто-нибудь знает обходное решение или библиотеку, которая может воспроизводить файлы MP3 из blobs?

Ответ 1

Мне кажется, что это работает отлично, хотя я использую audio/mpeg как тип MIME:

$scope.player = new window.Audio();

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        $scope.player.src = window.URL.createObjectURL(this.response);
        $scope.player.play();
    }
};
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.send();