Типичный файл WAV состоит из 44-байтового заголовка, за которым следуют фактические значения выборки.Размер «кадра» зависит от свойств файла WAV: стереофонический файл с 16-битной выборкой будет иметь размер кадра 4 байта (два байта для левой выборки и два байта для правой выборки).).
Таким образом, в коде вы должны создать второй WAV-файл, создав байтовый массив того же общего размера, что и исходный.Вы копируете 44-байтовый заголовок из оригинала в копию, а затем перебираете исходные кадры, начиная с последнего и продолжая до первого.Вы копируете каждый кадр в обратное место в массиве копирования (то есть последний исходный кадр копируется в массив копирования сразу после заголовка; второй-последний кадр копируется после первого кадра и т. Д.).Затем просто воспроизведите перевернутый файл.
Так что вам не нужна библиотека javax.sound для этого - вам просто нужно иметь возможность копировать и манипулировать байтами.К вашему сведению, не все файлы WAV являются «каноническими», как это (канонический означает 44-байтовый заголовок плюс примерные значения и ничего больше).Формат WAV на самом деле является форматом RIFF, а это означает, что теоретически вам необходимо выполнить более сложное извлечение значений выборки.На практике (особенно, если вы сами создаете файлы WAV), вы обычно можете воспользоваться гораздо более простым подходом, как я описал здесь.
ПРИМЕЧАНИЕ.более сложная задача, поскольку данные сэмпла не сохраняются в виде сэмплов в файле MP3.Если вы используете MP3, один из способов обратить их обратно - преобразовать их в WAV, а затем перевернуть файл WAV.