В программе Java, что является лучшим способом считать звуковой файл (файл WAV) к массиву чисел (float[]
, short[]
...), и записать файл WAV из массива чисел?
Было бы полезно немного больше деталей о том, чего вы хотите достичь. Если необработанные WAV-данные вас устраивают, просто используйте FileInputStream и, возможно, Scanner, чтобы превратить их в числа. Но позвольте мне попытаться дать вам несколько осмысленных примеров кода для начала работы:
Для этого существует класс com.sun.media.sound.WaveFileWriter.
InputStream in = ...;
OutputStream out = ...;
AudioInputStream in = AudioSystem.getAudioInputStream(in);
WaveFileWriter writer = new WaveFileWriter();
writer.write(in, AudioFileFormat.Type.WAVE, outStream);
Вы можете реализовать свой собственный AudioInputStream, который будет делать все, что угодно, чтобы превратить ваши массивы чисел в аудиоданные.
writer.write(new VoodooAudioInputStream(numbers), AudioFileFormat.Type.WAVE, outStream);
Как упомянул @stacker, вам, конечно, следует ознакомиться с API.
Волновые файлы поддерживаются пакетом javax.sound.sample
Поскольку это не тривиальный API, вам следует прочитать статью / учебное пособие, которое представляет API, например