java後臺amr格式轉mp3格式方法
方法一: 使用ffmpeg 軟體。
public void changeAmrToMp3(String sourcePath, String targetPath) throws IllegalArgumentException, EncoderException {
// 獲取檔案地址。追蹤到軟體所在資料夾ji
String webroot = configParamService.getpValueBypName("ffmpeg_path");
Runtime run = null;try {
run = Runtime.getRuntime();
long start = System.currentTimeMillis();
System.out.println(new File(webroot).getAbsolutePath());
// 執行ffmpeg.exe,前面是ffmpeg.exe的地址,中間是需要轉換的檔案地址,後面是轉換後的檔案地址。-i是轉 換方式,意思是可編碼解碼,mp3編碼方式採用的是libmp3lame
Process p = run.exec(new File(webroot).getAbsolutePath() + "/ffmpeg -i " + sourcePath
+ " -acodec libmp3lame " + targetPath);
// 釋放程序
p.getOutputStream().close();
p.getInputStream().close();
p.getErrorStream().close();
p.waitFor();
long end = System.currentTimeMillis();
System.out.println(sourcePath + " convert success, costs:" + (end - start) + "ms");
} catch (Exception e) {
e.printStackTrace();
} finally {
// run呼叫lame解碼器最後釋放記憶體
run.freeMemory();
}
}
方法二:使用jar包(jave-1.0.2.jar)。
1.下載完jar包以後匯入maven專案下。在pom檔案新增:
<dependency>
<groupId>org.jave</groupId>
<artifactId>jave</artifactId>
<version>1.0.2</version>
</dependency>
2.新增完後更新maven,一定要更新maven。。。
3.方法程式碼:
/***
* @Title: changeToMp3
* @Description: amr轉mp3
* @author yjs
* @date 2018年4月19日 下午4:18:38
* @param sourcePath 被轉檔案地址
* @param targetPath 轉換後儲存地址
*/
public static void changeToMp3(String sourcePath, String targetPath) {
File source = new File(sourcePath);
int i = targetPath.lastIndexOf("/") + 1;
String substring = targetPath.substring(0, i);
// 如果檔案存放路徑不存在,則mkdir一個
File path = new File(substring);
if (!path.exists()) {
path.mkdirs();
}
File target = new File(targetPath);
AudioAttributes audio = new AudioAttributes();
Encoder encoder = new Encoder();
audio.setCodec("libmp3lame");
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
try {
encoder.encode(source, target, attrs);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (EncoderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}