Java - удаление заголовков из .wav - PullRequest
3 голосов
/ 17 сентября 2009

Я читаю файл .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 до или после чтения в байтовый массив?

Ответы [ 4 ]

3 голосов
/ 20 июня 2011

Данные из метода read () AudioInputStream уже являются необработанными wav-данными. Поэтому не нужно беспокоиться о заголовке .wav. Если вы хотите получить доступ к заголовкам, вы должны использовать объект AudioFormat, связанный с этим AudioInputStream.

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

Кстати, если ваш файл .wav не очень маленький, вы не получите все за одно чтение, как вы сделали с вашим образцом. Вы должны будете поместить свои чтения в цикл while, как в первом фрагменте кода в приведенном выше уроке.

2 голосов
/ 17 сентября 2009

Если исправить, то заголовок .wav имеет длину 44 байта, поэтому пропустите / удалите первые 44, и вот оно у вас.

Хотя точно не знаю.

1 голос
/ 18 сентября 2009
0 голосов
/ 17 сентября 2009

Является ли заголовок файла wav фиксированного размера? Если так inputStream.skip?

...