Как захватить звук с микрофона и сохранить его в формате файла FLAC типа Java? - PullRequest
2 голосов
/ 10 января 2012

Мне нужно сделать простое приложение на Java, которое будет захватывать звук с микрофона и сохранять его в файл, используя FLAC. Я нашел учебник: http://www.developer.com/java/other/article.php/2105421/Java-Sound-Capturing-Microphone-Data-into-an-Audio-File.htm, но мне нужно сохранить файл в flac audio, поэтому я добавил библиотеку jFLAC, и я просто делаю:

AudioSystem.write(new AudioInputStream(targetDataLine), FlacFileFormatType.FLAC, new File("junk.flac"));

но я получаю исключение:

java.lang.IllegalArgumentException: could not write audio file: file type not supported: FLAC
at javax.sound.sampled.AudioSystem.write(AudioSystem.java:1346)
at pl.com.stream.snippet.concurentmap_test.AudioRecorder02$CaptureThread.run(AudioRecorder02.java:211)

Есть ли какой-нибудь пример или руководство, показывающее, как сохранить аудиофайл в формате flac на Java?

1 Ответ

2 голосов
/ 10 января 2012

Из информации . страница на JavaSound :

Интерфейс поставщика услуг

Java Sound API использует интерфейс поставщика услуг для определения кодеров и декодеров для звуковых форматов и типов последовательностей. Таким образом, добавить поддержку нового формата или типа так же просто, как предоставить для него декодер и / или кодировщик, добавить файл SPI в манифест Jar, в котором он находится, а затем добавить Jar в класс времени выполнения путь приложения. ...

Далее цитата с этой страницы:

Возможности звука Java

Возможности API сэмплированного звука можно получить с помощью таких методов, как AudioSystem.getAudioFileTypes() ...


Я думаю, что если вы выполните итерацию массива, возвращенного этим методом, вы обнаружите, что FLAC не указан в списке. Решением является добавление кодера FLAC с использованием SPI.

...