amr格式转换为MP3格式

最近做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());  
}  


 } 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值