decodeAudioData将ArrayBuffer转换为Float32Array

时间:2018-06-14 11:00:18

标签: javascript decode web-audio

我想了解web audio api的方法decodeAudioData的行为,此方法接收 ArrayBuffer ,例如ArrayBuffer(480044),480044 = 44(作为标题)+ 480000(如原始数据),在这种情况下此方法的输出:

audioCtx.decodeAudioData(theArrayBuffer, function (buffer) {
   var output = buffer.getChannelData(0);
});

输出的类型为 Float32Array (2880000)。如何将大小为480000的ArrayBuffer转换为大小为2880000(= 6x480000)的Float32Array

1 个答案:

答案 0 :(得分:0)

这些缓冲区之间没有真正的关系。 第一个代表媒体文件(视频或音频)的字节数组及其所有元数据,压缩与否等。

第二个是从此媒体解码的音频部分的原始PCM数据。

它就像一个jpeg文件与原始像素数据没有直接关系,如果你更习惯它将被解码。

相关问题