Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 理解音频缓冲区到阵列缓冲区的转换_Javascript_Node.js_Amazon Web Services_Express_Web Audio Api - Fatal编程技术网

Javascript 理解音频缓冲区到阵列缓冲区的转换

Javascript 理解音频缓冲区到阵列缓冲区的转换,javascript,node.js,amazon-web-services,express,web-audio-api,Javascript,Node.js,Amazon Web Services,Express,Web Audio Api,我有一个AudioBuffer客户端,我想将其AJAX连接到express服务器 显示XMLHttpRequest如何发送/接收二进制数据-ArrayBuffer ArrayBuffer与AudioBuffer不同(我相信是这样),因为我首先解码ArrayBuffer来制作AudioBuffer。这是作为Web音频API的一部分使用完成的 所以我的问题是,我可以将音频缓冲区转换回ArrayBuffer吗 如果这是可能的,我想将ArrayBuffer发送到我的express服务器,然后将其转发到S

我有一个AudioBuffer客户端,我想将其AJAX连接到express服务器

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

ArrayBuffer与AudioBuffer不同(我相信是这样),因为我首先解码ArrayBuffer来制作AudioBuffer。这是作为Web音频API的一部分使用完成的

所以我的问题是,我可以将音频缓冲区转换回ArrayBuffer吗

如果这是可能的,我想将ArrayBuffer发送到我的express服务器,然后将其转发到S3存储桶,如中所示

在该示例中,代码将缓冲区放在通过fs.readFileSync()创建的S3 bucket中。我假设缓冲区和ArrayBuffer之间的差异不会成为S3的问题:S

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

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

谢谢你的回答。有一件事,我认为在示例代码中,copyFromChannel将创建一个只有单声道输出的ArrayBuffer,而不是一个2声道立体声ArrayBuffer,这是正确的。您必须从两个频道检索数据,并了解如何“合并”这些频道。我刚刚找到了一些关于
createchannelmerge
,希望这对您有所帮助: