Javascript 连接奇数字节并读取为整数

Javascript 连接奇数字节并读取为整数,javascript,Javascript,我对能够读写24位wav文件感兴趣。web audio api+recorderjs对于16位WAV来说似乎很棒,但专业音频通常是在24位进行录制和操作的。我想知道javascript中是否有一种方法可以将数组缓冲区中的3个二进制字节连接起来,并将它们作为int读取 解决方案: 当然可以: 似乎我不能在数组缓冲区或类型化数组上使用reduce。@RobbyAllsopp您能一次读取3个字节并应用此代码吗? var sample = 0; for (var b = 0; b < bytes

我对能够读写24位wav文件感兴趣。web audio api+recorderjs对于16位WAV来说似乎很棒,但专业音频通常是在24位进行录制和操作的。我想知道javascript中是否有一种方法可以将数组缓冲区中的3个二进制字节连接起来,并将它们作为int读取

解决方案:

当然可以:


似乎我不能在数组缓冲区或类型化数组上使用reduce。@RobbyAllsopp您能一次读取3个字节并应用此代码吗?
var sample = 0;

for (var b = 0; b < bytesPerSample; b++) { 

    sample <<= 8;
    sample |= data[b]; // data is a Uint8Array          

}
var a = [0xc,0xa,0xb];
a.reduce(function(p,c){return p<<8|c;},0).toString(16) // "c0a0b"