Java - removing headers from .wav
Question
I'm reading a .wav file into a byte array with the following code.
AudioInputStream inputStream =
AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();
Is there a simple way to remove the .wav headers either before or after reading into the byte array?
Solution
Here is a good reference on the wave file format.
OTHER TIPS
The data from the AudioInputStream read() method is already raw wav data. So there is no need to worry about the .wav header. If you do want to access the header stuff, you would use the AudioFormat object associated with this AudioInputStream.
http://download.oracle.com/javase/tutorial/sound/converters.html
BTW, unless your .wav file is really small, you won't get it all with a single read as you've done with your sample. You will have to put your reads in a while loop, as in the first code snippet in the above cited tutorial.
If correct the .wav header is 44 bytes long, so skip/remove the first 44 and there you have it.
Don't know for sure though.
Is a wav file header a fixed size? If so inputStream.skip?