播放存储为blob的MP3文件

问题描述 投票:11回答:2

简而言之,我想在Firefox中播放一个blob MP3文件。

我可以访问blob本身:blob(用mime类型audio/mpeg3切片),以及它的URL:blobURL = window.URL.createObjectURL(blob)

我尝试过:

  1. 一个HTML5音频播放器: <audio controls="controls"> <source src="[blobURL]" type="audio/mp3"> </audio> 但我在Firebug中收到警告,告诉我Firefox无法读取audio/mpeg3类型的文件。
  2. 多个音频播放器库(SoundManagerJPlayer等),但似乎没有允许blob URL作为输入。

我做错了吗?或者有没有人知道可以从blob播放MP3文件的变通方法或库?

html5 flash firefox mp3 blob
2个回答
13
投票

这似乎对我很好,虽然我使用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();

0
投票

我意识到这个问题已经得到了回答,而且我的发现是针对不同的浏览器(Chrome),但我想我会留下这个,以防将来有人遇到同样的问题。我无法通过音频播放器播放blob文件,但发现删除源标签修复了一些问题。所以这不起作用:

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

但这很好:

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

我不确定为什么一个会工作而另一个不会,但它确实存在。希望这对其他人有用。

© www.soinside.com 2019 - 2024. All rights reserved.