有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

插座读数。wav文件到Java中的字节数组

我在读一本书。wav文件转换成字节数组,通过socket连接发送并在另一侧播放。我遇到了一个问题,一旦读取了文件的头数据,文件的其余部分就会用0填充字节数组。下面是示例代码。我尝试了其他几种方法,但都得到了相同的结果

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
...

还应注意的是,由于波形信息将提前发送,因此此处将丢弃报头数据。提前感谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    您还可以查看Apache/Commons IO库,其中有一些方便的东西,用于处理常见的I/O任务,例如将整个文件读入字节数组,或关闭输入/输出样板文件