问题描述
我有一个内部有音频 blob 的对象。当我在对象上调用 JSON.stringify 时,blob 消失了。如何将对象中的二进制 blob 字符串化?
音频 blob 来自 caching,在本例中为 mime 类型“audio/wav”。
let blob = this/soxElem.getBlob();
let object = {
audio: blob,name: "hi"
}
console.log(JSON.stringify(object))
控制台显示 {audio:{},name: "hi"}。斑点不见了。
解决方法
一种方法是转换为 JSON 可以处理的数组:
let ab = await this.soxElem.getBlob().arrayBuffer();
let object = {
audio: Array.from(new Uint8Array(ab)),name: "hi"
}
在接收端(例如使用 Node.js)像这样解码:
let binaryData = Buffer.from(data.audio);