我試圖將.wav文件讀入要通過套接字連接發送的字節數組中,並在另一側播放。一旦讀取文件的頭文件數據,我就會遇到問題,文件的其餘部分只是用0填充字節數組。下面是示例代碼。我嘗試了其他一些方法,但都產生了相同的結果。將.wav文件讀取到Java中的字節數組中
File audioIn = new File("assets/file.wav");
byte [] byteArray = new byte[filesize];
FileInputStream fileInStream = new FileInputStream(audioIn);
fileInStream.read(byteArray);
這裏是從單個字節獲取的調試數據。標題信息與Java方法之前提取的內容相對應。從我讀過的,聲音數據應該從字節[44]開始,但是我得到了下面的結果。數組的其餘部分填充0。
Byte 0: 82
Byte 1: 73
Byte 2: 70
Byte 3: 70
...
Byte 41: 97
Byte 42: 0
Byte 43: -68
Byte 44: -1
Byte 45: 1
Byte 46: 0
Byte 47: 0
...
還應該注意的是,標題數據將在此處被丟棄,因爲WAVE信息將被預先發送。在此先感謝您的幫助。
上面的字節是否與'file.wave'的內容匹配?使用十六進制查看器(Unix/Linux/OSX上的「od -h」)進行驗證。 – 2012-03-19 23:51:54
1)我會發送整個文件(額外的44個字節在頭上將沒有什麼區別2)你知道很多聲音樣本在建立到正常音量之前以'0音量聲音'開始,對吧? – 2012-03-20 07:01:03