2014-02-10 18 views
0

我有興趣可以讀取和寫入24位wav文件。網絡音頻api + recorderjs對於16位wavs來說似乎很棒,但專業音頻通常以24位記錄和操作。我想知道是否有一種方法在JavaScript中連接來自數組緩衝區的3個二進制字節並將它們讀爲int。連接奇數個字節並讀取爲Int

解決方案:

var sample = 0; 

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

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

} 

回答

0

肯定的:

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

看來我不能用減少陣列緩衝器或類型數組。 –

+0

@RobbyAllsopp你能夠一次讀取3個字節並應用此代碼嗎? – Matt

+0

啊,你讓我走上正軌。看我的編輯。 –