最近项目用到读取amr格式的音频,但是h5不支持这种格式,网上有一些是通过插件的方式来读取,amrlib.js之类,但是不擅长前端,而且有一些插件是要求把文件转为base64编码格式,然后把这些base64码当做参数传入一个js函数中,用着比较麻烦。
所以还是在后端转格式吧。
用到一个jar包,jave.jar
演示代码也比较简单,传入需要转换的amr音频文件所在的路径,以及新生成的mp3文件所在的路径就可以了。
import it.sauronsoftware.jave.*;import java.io.File;/*** Created by xhzhang on /10/23.*/public class demo {public static void main(String[] args) throws Exception {String sourcePath = "D:/MediaRoot/123.amr";String targetPath = "D:/MediaRoot/123.mp3";changeToMp3(sourcePath, targetPath);}public static void changeToMp3(String sourcePath, String targetPath) {File source = new File(sourcePath);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 (InputFormatException e) {e.printStackTrace();} catch (EncoderException e) {e.printStackTrace();}}}