我需要在java中编写FLAC文件。之前我将音频输入写入WAV文件,然后使用外部转换器将其转换为FLAC文件
我正在研究JFlac以找到可以通过其编写FLAC文件的任何API。我发现java中的AudioFileFormat.TYPE仅支持以下文件格式 - AIFC,AIFF,SND,AU,WAVE。
我想有一种方法可以从麦克风中捕获音频,并使用Audiosystem.write等API将其写入FLAC文件而不是WAV文件。
请建议可以解决我问题的方法或API。
答案 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