如何在java中编写FLAC文件

时间:2011-09-19 05:13:05

标签: java audio wav audio-streaming

我需要在java中编写FLAC文件。之前我将音频输入写入WAV文件,然后使用外部转换器将其转换为FLAC文件

我正在研究JFlac以找到可以通过其编写FLAC文件的任何API。我发现java中的AudioFileFormat.TYPE仅支持以下文件格式 - AIFC,AIFF,SND,AU,WAVE。

我想有一种方法可以从麦克风中捕获音频,并使用Audiosystem.write等API将其写入FLAC文件而不是WAV文件。

请建议可以解决我问题的方法或API。

3 个答案:

答案 0 :(得分:11)

您可以使用this lib。这是一个使用0.2.3版本的简单示例(javaFlacEncoder-0.2.3-all.tar.gz)。解压缩已下载的文件,然后将javaFlacEncoder-0.2.3.jar导入到项目中。有关更多文档,请参阅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");
    }
}

答案 1 :(得分:5)

可以使用javaflacencoder 将音频流直接写入FLAC文件:

AudioSystem.write(audioInputStream, FLACFileWriter.FLAC, new File("E:\\temp.flac"));

答案 2 :(得分:-1)

如果您想更改采样率, 使用 ffmpeg 像这样 ffmpeg -i sourcefile.wav -ar 16000 targetfile.flac