使用ajax上传数组缓冲区(音频缓冲区)的最佳方法

时间:2016-03-20 00:29:58

标签: javascript json ajax

我有一个如下所示的音频缓冲区:[float32Array [largeSize],float32Array [largeSize]]。

我试图找出如何最好地将其上传到我的快递/节点服务器。

我想这样做的方式是这样的:

$.ajax({
        type: 'POST',
        url: '/uploadTrackOne',
        data: {buffer : JSON.stringify(MYAUDIOBUFFERS},
        dataType: "buffer"
     });

这是正确的方法吗?

如果缓冲区足够长,我会收到以下错误: 未捕获的RangeError:无效的字符串长度

似乎在如此大的缓冲区上,JSON.stringy非常慢,所以我想也许我没有正确地做到这一点。

2 个答案:

答案 0 :(得分:1)

您应该查看" chunking":将缓冲区分成更小的部分,然后逐个上传部分。以下是两个示例(用于上传文件):

然后您的服务器需要将这些部分重新组合在一起。

答案 1 :(得分:1)

事实证明,使用XMLHttpRequest2,它很容易发送原始二进制数据,无需进行字符串化。这解决了我的问题

相关问题