Java: eliminar encabezados de .wav
Pregunta
Estoy leyendo un archivo .wav en una matriz de bytes con el siguiente código.
AudioInputStream inputStream =
AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();
¿Hay una manera simple de eliminar los encabezados .wav antes o después de leer en la matriz de bytes?
Solución
Aquí hay una buena referencia sobre el formato de archivo de onda .
Otros consejos
Los datos del método AudioInputStream read () ya son datos sin formato wav. Por lo tanto, no hay necesidad de preocuparse por el encabezado .wav. Si desea acceder al material del encabezado, usaría el objeto AudioFormat asociado con este AudioInputStream.
http://download.oracle.com/javase/tutorial/sound/ converters.html
Por cierto, a menos que su archivo .wav sea realmente pequeño, no lo obtendrá todo con una sola lectura como lo hizo con su muestra. Tendrá que poner sus lecturas en un ciclo while, como en el primer fragmento de código en el tutorial citado anteriormente.
Si es correcto, el encabezado .wav tiene una longitud de 44 bytes, así que omita / elimine los primeros 44 y allí lo tendrá.
Sin embargo, no estoy seguro.
¿El encabezado de un archivo wav tiene un tamaño fijo? Si es así inputStream.skip?