我需要將音頻數據作爲「16位整數數組」(來自我有限的文檔)傳遞到第三方系統。Java - 將音頻的字節數組轉換爲整數數組
這是我到目前爲止所嘗試過的(系統從生成的bytes.dat文件中讀取它)。
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File("c:\\all.wav"));
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
BufferedWriter fileOut = new BufferedWriter(new FileWriter(new File("c:\\temp\\bytes.dat")));
ByteBuffer bb = ByteBuffer.wrap(buffer);
while (bb.remaining() > 1) {
short current = bb.getShort();
fileOut.write(String.valueOf(current));
fileOut.newLine();
}
這似乎並不奏效 - 第三方系統無法識別它,我也無法將該文件導入Audacity作爲原始音頻。
有沒有什麼明顯的我做錯了,還是有更好的方法來做到這一點?
額外信息:波形文件是16bit,44100Hz,單聲道。
你能告訴我更多關於這個第三方系統嗎? – akarnokd 2009-06-25 15:03:38