了解AudioBuffer到ArrayBuffer的转换

时间:2016-10-18 22:09:18

标签: javascript node.js amazon-web-services express web-audio

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

This link显示了XMLHttpRequest如何发送/接收二进制数据 - ArrayBuffer。

ArrayBuffer与AudioBuffer不同(或者我相信),因为我解码了一个ArrayBuffer来创建AudioBuffer。这是使用decodeAudioData()作为Web Audio API的一部分完成的。

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

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

在该示例中,代码PUT通过fs.readFileSync()创建的S3存储桶中的缓冲区。我假设Buffer和ArrayBuffer之间的区别不会是S3的问题:S

1 个答案:

答案 0 :(得分:1)

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

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