音频文件格式转换 转为 wav格式
pom.xml依赖
<!--文件格式转换-->
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-core</artifactId>
<version>3.3.1</version>
</dependency>
<!-- windows系统平台的依赖 -->
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-nativebin-win64</artifactId>
<version>3.3.1</version>
</dependency>
<!-- linux系统平台的依赖64位 -->
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-nativebin-linux64</artifactId>
<version>3.3.1</version>
</dependency>
<!-- linux系统平台的依赖32位 -->
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-nativebin-linux32</artifactId>
<version>3.3.1</version>
</dependency>
/**
* 文件格式转换
* @param source 源文件
* @param desFileName 转换后的wav文件的路径
*/
public static File transformation(File source, String desFileName) throws EncoderException {
Encoder encoder = new Encoder();
// 创建一个临时文件
File target = File.createTempFile(desFileName, "wav");
// 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
target.deleteOnExit();
// File target = new File(desFileName);
// 创建音频属性实例
AudioAttributes audio = new AudioAttributes();
// 设置编码 libmp3lame pcm_s16le
audio.setCodec("pcm_s16le");
// 音频比特率
audio.setBitRate(16000);
// 声道 1 =单声道,2 =立体声
audio.setChannels(2);
// 采样率
audio.setSamplingRate(16000);
// 转码属性实例
EncodingAttributes attrs = new EncodingAttributes();
// 转码格式
attrs.setOutputFormat("wav");
attrs.setAudioAttributes(audio);
MultimediaObject sourceObj = new MultimediaObject(source);
encoder.encode(sourceObj, target, attrs);
return target;
}