下载ArrayBuffer中的数据到本地。
1、 首先确保你想下载的对象类型属于 [object ArrayBuffer]、或者类型化数组 [object UintXArray]、[object intXArray]。
可以使用以下代码查看buff对象类型
console.log(Object.prototype.toString.call (buff) );buff为要检验的对象
2、 编写下载代码,如下: 参数buff为你想下载的ArrayBuffer。
function download(buff){ let url = window.URL.createObjectURL(new Blob( [buff], {type: "arraybuffer"}) ) const link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', 'out.mp4'); document.body.appendChild(link); link.click(); document.body.removeChild(link); }解释: 通过window.URL.createObjectURL()为对象创建资源链接URL。 但该函数参数 仅为 File 对象、Blob 对象或者 MediaSource 对象。
因此,你需要将 ArrayBuffer转换。 new Blob( [buff], {type: “arraybuffer”}) 具体介绍请看Blob
Blob() 构造函数返回一个新的 Blob 对象。 blob的内容由参数数组中给出的值的串联组成。 参数[buff]为要转化的对象,type表明了buff的类型。
const link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', 'out.mp4'); document.body.appendChild(link); link.click(); document.body.removeChild(link);上面这一段就是很经典的创建隐藏标签和点击事件,下载URL的代码,因此不再讲解。