ps:利用jave官网提供的jar来解决这一问题。
资源下载地址http://www.sauronsoftware.it/projects/jave/download.php
这里选择的是 Binaries and documentation 1.0.1
转换文件工具类
import java.io.File;
import java.io.Serializable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import it.sauronsoftware.jave.AudioAttributes;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.EncodingAttributes;
/**
* 音频工具类
*
*/
@SuppressWarnings("serial")
public class AudioUtils implements Serializable {
private static final Log log = LogFactory.getLog(AudioUtils.class);
/**
* 将音频从wav格式转为mp3格式
*
* @param inPath
* 要转换的音频路径
* @param outFile
* 转换后的音频路径
* @return true:转换成功 false:转换失败
*/
public static boolean wavTomp3(String inPath, String outFile) {
File file = new File(inPath);
try {
execute(file, outFile);
return true;
} catch (Exception e) {
log.error("音频转码失败", e);
}
return false;
}
/**
* 执行
* @param source 要转码的音频文件
* @param desFileName 转码后保存的文件路径
* @return
* @throws Exception
*/
public static File execute(File source, String desFileName) throws Exception {
File target = new File(desFileName);
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(36000));
audio.setChannels(new Integer(2));
audio.setSamplingRate(new Integer(44100));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
return target;
}
public static void main(String[] args) {
String inPath = "D:/audio/Alarm05.wav";
String outFile = "D:/audio/Alarm05.mp3";
wavTomp3(inPath, outFile);
}
}