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