我需要一个Java中的OpenSource API,它可以将* .wav和* .au格式编码为MP3,反之亦然。
我已经评估了Java Sound API和LameOnJ,但它们分别不符合我的要求并且不稳定。请建议一个免费且与平台无关的。
答案 0 :(得分:6)
可能没有足够的答案,因为MP3格式要求解码器/编码器的作者从弗劳恩霍夫研究所获得许可。
我认为LAME图书馆是从一个不尊重这些知识产权问题的国家发布的,但是为了实现这一目标需要相当多的法律支持。
对于任何其他库 - 例如用Java编写的库,作者需要获得类似的许可。成本是个问题 - 例如在一个开源项目中,这足以阻碍启动。
有关详细信息,请参阅此wikipedia article。
如果LAME4J不够稳定,那么我担心你的选择可能是:
答案 1 :(得分:4)
已经有一段时间了,但Oracle / Sun已经发布了对JMF的MP3支持。这可以从以下网址下载: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html
将其添加到类路径将通过AudioSystem api启用播放。
答案 2 :(得分:2)
LAME4J使用免费但有时间限制的许可证,无限制许可证将花费您一些钱。
我在SourceForge上找到Lamejb library,它只需要蹩脚的二进制文件,并且无需任何额外许可即可正常运行。
答案 3 :(得分:1)
使用Process API调用SoX
SoX附带源代码或Windows和Mac的预编译二进制文件。
答案 4 :(得分:1)
如果您正在搜索纯Java版本的lame,请查看以下来源: http://jsidplay2.cvs.sourceforge.net/viewvc/jsidplay2/jump3r/
答案 5 :(得分:0)
Jave2 project是Java库,它包装FFMPEG并通过相当有用的Java API提供大部分功能 * 。
优点:
缺点:
*),特别是围绕格式转换的内容-过滤器功能大部分未显示。
**)在Java中,可以启动进程并连接到其标准输出和输入,但并不舒适,并且几乎不可能使用命名管道(用于将AV与FFMPEG进行管道传输的BKM),即使您这样做设法做到这一点,Jave2不能很好地发挥作用。如果有人有兴趣,我有一套基于JNA的工具来解决这些问题-我可以分享。