我想了解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
答案 0 :(得分:0)
这些缓冲区之间没有真正的关系。 第一个代表媒体文件(视频或音频)的字节数组及其所有元数据,压缩与否等。
第二个是从此媒体解码的音频部分的原始PCM数据。
它就像一个jpeg文件与原始像素数据没有直接关系,如果你更习惯它将被解码。