Вопрос

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

Это было полезно?

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top