常见做法是使用java命令调c的包装程序,这种有局限性.这里介绍一种纯java的解决方案.
<dependency>
<groupId>de.sciss</groupId>
<artifactId>jump3r</artifactId>
</dependency>
这个库是java版本的lame,相当于将c版本的lame重新用java写了一遍,这样就不需要将c程序包装在jar里面了.文章源自懂站帝-http://www.sfdkj.com/12589.html
List<String> argList = new ArrayList<>();
argList.add("-h"));
argList.add(sourceFile);
argList.add(mp3RecordFile);
new Main().run(argList.toArray(new String[0]));
上面是最基本的做法,将双声道的wav转化为双声道的mp3,会自动去掉噪音,效果比较好.文章源自懂站帝-http://www.sfdkj.com/12589.html
lame还有很多其他用,比如将双声道wav转换为单声道mp3是使用-a命令.官方还有一种LameEncoder直接调api的方式,但是测试下来发现这种有噪音,效果差.文章源自懂站帝-http://www.sfdkj.com/12589.html文章源自懂站帝-http://www.sfdkj.com/12589.html