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?

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top