Java - rimozione delle intestazioni da .wav
Domanda
Sto leggendo un file .wav in un array di byte con il seguente codice.
AudioInputStream inputStream =
AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();
Esiste un modo semplice per rimuovere le intestazioni .wav prima o dopo aver letto nell'array di byte?
Soluzione
Altri suggerimenti
I dati del metodo read () AudioInputStream sono già dati wav grezzi. Quindi non è necessario preoccuparsi dell'intestazione .wav. Se si desidera accedere all'intestazione, utilizzare l'oggetto AudioFormat associato a questo AudioInputStream.
http://download.oracle.com/javase/tutorial/sound/ converters.html
A proposito, a meno che il tuo file .wav non sia veramente piccolo, non otterrai tutto con una sola lettura come hai fatto con il tuo campione. Dovrai mettere le tue letture in un ciclo while, come nel primo frammento di codice nel tutorial sopra citato.
Se corretto, l'intestazione .wav è lunga 44 byte, quindi salta / rimuovi i primi 44 e il gioco è fatto.
Non lo so per certo.
L'intestazione di un file wav ha una dimensione fissa? In tal caso inputStream.skip?