我试图将.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