Я бы лично искал библиотеку, которая делает обмен порядком байтов для вас. Каждый формат аудиофайла имеет свои предположения о порядке байтов для вас, и получить это право сложно для всех битовых глубин / типов данных, поддерживаемых волновыми файлами:
- 8 бит - uint8
- 16 бит - int16
- 24 бит - int32
- 32bit - int32 как float
- 32bit - float
- 64 бит - двойной
Если вы хотите поддерживать наиболее распространенные типы волновых файлов, вам понадобится преобразование в порядок байтов для всех этих типов данных.
Я бы посмотрел на ByteSwapper , который даст вам байтовую замену для большинства перечисленных выше типов.
Жаль, что в Java нет классов endianness в классах File IO. Возможность просто открыть файл, чья edianness велика или мала, является гораздо более простым решением этой проблемы.