了解 AudioBuffer 到 ArrayBuffer 的转换

Understanding AudioBuffer to ArrayBuffer conversion

我有一个 AudioBuffer 客户端,我想 AJAX 到一个快速服务器。

This link 展示了 XMLHttpRequest 如何 send/receive 二进制数据 - ArrayBuffer。

ArrayBuffer 不同于 AudioBuffer(或者我相信如此),因为我首先解码了 ArrayBuffer 以制作 AudioBuffer。这是使用 decodeAudioData() 作为网络音频的一部分完成的 API。

所以我的问题是,我可以将 AudioBuffer 转换回 ArrayBuffer 吗?

如果可能,我想将 ArrayBuffer 发送到我的快速服务器,然后将其转发到 S3 存储桶,如 this example 所示。

在该示例中,代码将缓冲区放入通过 fs.readFileSync() 创建的 S3 存储桶中。我认为 Buffer 和 ArrayBuffer 之间的区别不会成为 S3 的问题:S

使用copyFromChannel方法,然后将Float32Array转换为ArrayBuffer

var myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);  
var anotherArray = new Float32Array();
myArrayBuffer.copyFromChannel(anotherArray,1,0);