使用javascript将ByteArray转换为blob

使用javascript将ByteArray转换为blob,javascript,bytearray,blob,Javascript,Bytearray,Blob,我使用flash捕获音频,将其编码为mp3,然后将其作为ByteArray发送到javascript。 现在我希望javascript将其保存为我的计算机上的MP3(而不是flash将其保存到我的计算机上)。我使用的是Blob,然后是getDataURL,但是保存时文件没有播放。我用同样的方法保存WAV文件,效果非常好。 以下是JS代码: var getDataFromSWF = function (bytes) { var myBlob = new Blob([byte

我使用flash捕获音频,将其编码为mp3,然后将其作为ByteArray发送到javascript。 现在我希望javascript将其保存为我的计算机上的MP3(而不是flash将其保存到我的计算机上)。我使用的是Blob,然后是getDataURL,但是保存时文件没有播放。我用同样的方法保存WAV文件,效果非常好。 以下是JS代码:

var getDataFromSWF = function (bytes) {
            var myBlob = new Blob([bytes], { type: "audio/mpeg3" });

            var url = (window.URL || window.webkitURL).createObjectURL(myBlob);
            var link = window.document.createElement('a');
            link.href = url;

//            $("label").text(url);
            link.download = 'output.mp3';
            var click = document.createEvent("Event");
            click.initEvent("click", true, true);
            link.dispatchEvent(click);

//            console.log(bytes);
        }

我非常确定byteArray是好的,因为如果我让SWF保存文件,它也可以正常工作。但是我想知道JS代码有什么问题。(注意:我对BLOB是新手)

试试这个来获得BLOB

函数base64toBlob(base64Data,contentType){
var-sliceSize=1024;
var byteCharacters=atob(base64Data);
var bytesLength=byteCharacters.length;
var slicescont=Math.ceil(字节长度/切片大小);
var byteArray=新阵列(切片器);
对于(var sliceIndex=0;sliceIndex