Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write FLAC files in java

I have a requirement to write FLAC files in java. Earlier I was writing the audio input into a WAV file and then converting it to FLAC file using a external converter

I was looking into JFlac to find any API through which I can write FLAC files. I found that AudioFileFormat.TYPE in java supports only the following file formats - AIFC, AIFF, SND, AU, WAVE .

I would like to have a method where I can capture the audio from the microphone and, using an API such as Audiosystem.write, write it to a FLAC file instead of WAV file.

Please suggest a method or an API that can solve my problem.

like image 892
Raveesh Sharma Avatar asked Sep 19 '11 05:09

Raveesh Sharma


2 Answers

You can use this lib. Here is a simple example using version 0.2.3 (javaFlacEncoder-0.2.3-all.tar.gz). Extract the dowloaded file, and then import javaFlacEncoder-0.2.3.jar to your project. For more documentation, see here:

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");
    }
}
like image 153
Hoa Nguyen Avatar answered Sep 30 '22 18:09

Hoa Nguyen


You can write audio stream directly to a FLAC file with javaflacencoder:

AudioSystem.write(audioInputStream, FLACFileWriter.FLAC, new File("E:\\temp.flac"));
like image 34
Alexey Romanov Avatar answered Sep 30 '22 17:09

Alexey Romanov