我正在使用以下代码将.wav文件读入字节数组。
AudioInputStream inputStream =
AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();
是否有一种简单的方法可以在读入字节数组之前或之后删除.wav标头?
答案 0 :(得分:3)
来自AudioInputStream read()方法的数据已经是原始的wav数据。因此无需担心.wav标头。如果您确实想要访问标题内容,可以使用与此AudioInputStream关联的AudioFormat对象。
http://download.oracle.com/javase/tutorial/sound/converters.html
顺便说一下,除非你的.wav文件非常小,否则只要你对样本进行一次读取,就不会全部完成。您必须将读取放在while循环中,就像上面引用的教程中的第一个代码片段一样。答案 1 :(得分:2)
如果正确的.wav标题是44个字节长,那么跳过/删除前44个,你就可以了。
虽然不确定。
答案 2 :(得分:1)
答案 3 :(得分:0)
wav文件头是固定大小的吗?如果是这样inputStream.skip?