我正在使用以下代码将.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标头?

有帮助吗?

其他提示

来自AudioInputStream read()方法的数据已经是原始的wav数据。因此无需担心.wav标头。如果您确实想要访问标题内容,可以使用与此AudioInputStream关联的AudioFormat对象。

http://download.oracle.com/javase/tutorial/sound/ converters.html

顺便说一下,除非你的.wav文件非常小,否则只要你对样本进行一次读取,就不会全部完成。您必须将读取放在while循环中,就像上面引用的教程中的第一个代码片段一样。

如果正确的.wav标题是44个字节长,那么跳过/删除前44个,你就可以了。

虽然不确定。

wav文件头是固定大小的吗?如果是这样inputStream.skip?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top