Как писать файлы FLAC в Java - PullRequest
6 голосов
/ 19 сентября 2011

У меня есть требование для записи файлов FLAC в Java. Ранее я записывал аудиовход в файл WAV, а затем преобразовывал его в файл FLAC с помощью внешнего конвертера

Я искал JFlac, чтобы найти любой API, с помощью которого я могу писать файлы FLAC. Я обнаружил, что AudioFileFormat.TYPE в Java поддерживает только следующие форматы файлов - AIFC, AIFF, SND, AU, WAVE.

Я хотел бы иметь метод, с помощью которого я могу захватывать звук с микрофона и, используя API, такой как Audiosystem.write, записывать его в файл FLAC вместо файла WAV.

Пожалуйста, предложите метод или API, который может решить мою проблему.

Ответы [ 3 ]

11 голосов
/ 10 мая 2012

Вы можете использовать this lib. Вот простой пример использования версии 0.2.3 (javaFlacEncoder-0.2.3-all.tar.gz). Извлеките загруженный файл, а затем импортируйте javaFlacEncoder-0.2.3.jar в свой проект. Для получения дополнительной документации см. здесь :

package fr.telecomParisTech;
import java.io.File;
import javaFlacEncoder.FLAC_FileEncoder;
public class SoundConverter {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        FLAC_FileEncoder flacEncoder = new FLAC_FileEncoder();
        File inputFile = new File("hello.wav");
        File outputFile = new File("hello.flac");

        flacEncoder.encode(inputFile, outputFile);
        System.out.println("Done");
    }
}
5 голосов
/ 21 мая 2013

Вы можете записывать аудиопоток напрямую в файл FLAC с помощью javaflacencoder:

AudioSystem.write(audioInputStream, FLACFileWriter.FLAC, new File("E:\\temp.flac"));
0 голосов
/ 18 июля 2012

Если вы хотите изменить частоту дискретизации, используйте ffmpeg вот так ffmpeg -i sourcefile.wav -ar 16000 targetfile.flac

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...