Java - чтение, управление и запись файлов WAV

В программе Java, что является лучшим способом считать звуковой файл (файл WAV) к массиву чисел (float[], short[]...), и записать файл WAV из массива чисел?

20
задан jwueller 9 January 2013 в 21:24
поделиться

2 ответа

Было бы полезно немного больше деталей о том, чего вы хотите достичь. Если необработанные 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.

8
ответ дан 30 November 2019 в 00:09
поделиться
​​

Волновые файлы поддерживаются пакетом javax.sound.sample

Поскольку это не тривиальный API, вам следует прочитать статью / учебное пособие, которое представляет API, например

Java Sound, An Introduction

2
ответ дан 30 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: