开发者问题收集

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

2016-03-20
1074

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

我正在尝试找出如何最好地将其上传到我的 express/node 服务器。

我考虑这样做的方式是这样的:

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

这是正确的方法吗?

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

而且似乎在这么大的缓冲区上,JSON.stringy 非常慢,所以我想也许我做得不对。

2个回答

您应该研究一下“分块”:将缓冲区分成更小的部分,然后逐个上传各部分。以下是两个示例(用于上传文件):

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

Sphinxxx
2016-03-20

事实证明,使用 XMLHttpRequest2 可以非常轻松地发送原始二进制数据,无需进行字符串化。这解决了我的问题

Daver Muzaffar
2016-04-07