利用JAVE库来实现,简介:http://www.sauronsoftware.it/projects/jave/index.php
主要代码如下:
File source = new File("001.amr");//要转换的文件
File target = new File("001.flac");//要生成的目标文件
AudioAttributes audio = new AudioAttributes();
EncodingAttributes attrs = new EncodingAttributes();
Encoder encoder = new Encoder();
audio.setCodec("flac");//载入要生成的文件格式相应的编码器
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(8000));//设置采样率
attrs.setFormat("flac");//设置生成格式
attrs.setAudioAttributes(audio);
// System.out.println(encoder.getInfo(source));
encoder.encode(source, target, attrs);//转码
主要问题在于,要加载的是目标格式的编码器而不是源格式的解码器。
有可能会抛出异常,比如 Duration N/A Bitrate N/A 之类的错误,可以忽略,只要目标文件成功生成且没有格式问题就可以。