在Java中播放m4a文件

3
我想在Java中创建一个媒体播放器。JLayer库已经支持mp3文件,但是哪个库可以播放m4a文件?
我在stack overflow上读到了有关vlcj的信息,但这似乎依赖于Swing/AWT,而我不想使用它们,因为我想稍后将应用程序移植到Android上。

这里有一个类似的问题。它没有被回答,所以我不认为它是重复的:http://stackoverflow.com/questions/9221191/is-there-a-good-java-sound-library-i-can-use-to-play-mpeg-4-audio-m4a-files - Daniel Kaplan
2
是的,我找到了那个问题,但正如你所说,它没有得到解答。因此,我尝试再次提问,因为新问题被回答的可能性比旧问题要大。 - user1839433
3个回答

3
你看过JAAD吗?它是一个Javasound SPI,可以解码AAC音频,我之前使用过并取得了成功。
请注意,m4a是一个容器格式,虽然通常包含(根据我的经验)AAC音频,但理论上也可能包含其他格式。
你可以在这里找到一些关于如何在没有Javasound的情况下使用它以及测试用例的信息。

我真的不知道SPI是什么,也不知道如何使用它。但听起来很有前途。你用它来处理m4as了吗? - user1839433
我在谷歌上找到了这段代码,因为我从未使用过Javasound,但它给了我一个NegativeArraySizeException异常。 http://pastebin.com/Uvyy8Sr2 - user1839433
尝试播放一个AAC文件-如果可以,则JAAD正在工作。或者,尝试使用此方法(http://jaadec.sourceforge.net/usage.php)绕过Javasound并进行检查。 - Michael Berry
@berry120 我建议你将有关教程和测试用例是否正常工作的信息编辑到你的答案中。 - Ryan
它说没有与扩展名aac相关联的读取器。我在Eclipse的构建路径中添加了jaad.jar。 - user1839433
显示剩余4条评论

0
如果您使用的是Java 7或更高版本,则可以访问Javafx库。您还可以使用媒体播放器(如iTunes或Windows Media Player)将其转换为简化的mp3版本并运行。我不建议使用.wav文件,因为它们比mp3具有显着更多的数据使用量(通过压缩.wav数据并省略不可听和其他垃圾数据来压缩文件大小)。
import javafx.scene.media.*;
String name = "song.mp3";
Media song = new Media(name);
MediaPlayer player = new MediaPlayer(song);
player.play();

0

这个答案有些间接。我对m4a文件并不是很了解。但是我找到了一个开源库,可以将它们作为Flash服务器进行流媒体传输,名为red5。它是用Java编写的,理论上你应该能够浏览他们的代码来弄清楚如何做到这一点。

希望这里有人能给出更直接的答案,这是我所能做的最好的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接