我有一个如下所示的音频缓冲区:[float32Array [largeSize],float32Array [largeSize]]。
我试图找出如何最好地将其上传到我的快递/节点服务器。
我想这样做的方式是这样的:
$.ajax({
type: 'POST',
url: '/uploadTrackOne',
data: {buffer : JSON.stringify(MYAUDIOBUFFERS},
dataType: "buffer"
});
这是正确的方法吗?
如果缓冲区足够长,我会收到以下错误: 未捕获的RangeError:无效的字符串长度
似乎在如此大的缓冲区上,JSON.stringy非常慢,所以我想也许我没有正确地做到这一点。
答案 0 :(得分:1)
您应该查看" chunking":将缓冲区分成更小的部分,然后逐个上传部分。以下是两个示例(用于上传文件):
$.ajax({ ...
)。XMLHttpRequest
)。然后您的服务器需要将这些部分重新组合在一起。
答案 1 :(得分:1)
事实证明,使用XMLHttpRequest2,它很容易发送原始二进制数据,无需进行字符串化。这解决了我的问题