NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

最近做html5移動開發,在android端錄音生成的amr格式在ios端無法播放,ios無法不支援amr。所以需在服務端對amr格式檔案進行轉換生成MP3格式檔案進行播放。

通過網上查的資料,使用jave.jar包將amr格式的音訊檔案轉成mp3格式,參考來源:http://mfan.iteye.com/blog/2032454

上述方法在windows系統下執行不存在問題,但是在linux環境下會出現轉換為0位元組的MP3,網上解決方案參考:http://t.cn/RLHVa5E

我測試這篇文章的方法,沒成功,所以根據jave.jar的原理自己簡單寫了一個轉換方法。

jave.jar中使用ffmpeg進行轉換。下載站點:http://ffmpeg.org/download.html

根據不同的系統下載不同的ffmpeg,放在程式中的目錄下,通過Runtime.getRuntime().exec呼叫命令列執行轉換。注:windows系統有時會出現轉換失敗的情況,因為系統差pthreadGC2.dll檔案,需要把這個檔案放在ffmpeg.exe的同級目錄下。程式碼如下

/**
 * amr轉換MP3
 * @param url   ffmpeg目錄不包含ffmpeg檔案
 * @param audiopath  amr檔案路徑
 * @param target     MP3檔案路徑
 */
public static void changeToMp3(String url,String  audiopath, String target ) {  
try {  

                            //windows下面的是ffmpeg.exe   linux如下
   Process process = Runtime.getRuntime().exec(url File.separator “ffmpeg -i ” audiopath ” ” target);  
   InputStreamReader ir = new InputStreamReader(process.getInputStream());  
   LineNumberReader input = new LineNumberReader(ir);  
   String line; 
   while ((line = input.readLine()) != null) 
   System.out.println(line); 
   int exitVal = process.waitFor();  
           System.out.println(“Process exitValue: ” exitVal);  
   
} catch (Exception e) {  
   System.err.println(“IOException ” e.getMessage());  
}  

 } 

相關文章

程式語言 最新文章