Java音乐播放器:歌曲信息和播放

时间:2013-06-11 02:43:58

标签: java javafx media

在Android中,我们可以使用媒体播放器在设备上播放歌曲,使用游标获取曲目信息(操作系统会跟踪)。我的问题是,这些Java的等价物是什么?

注意:我看到有人提到JavaFX,但是默认情况下这似乎没有安装JVM,因此我的程序将不再是跨平台的。

有什么建议吗?

注意:这些都是本地文件,但它们可能是任何音频文件类型。

1 个答案:

答案 0 :(得分:7)

我将提供有关Java音乐播放器的JavaFX相关解决方案的信息,因为我认为这是一项用于此任务的好技术。

支持的平台和格式

  

它们可能是任何音频文件类型。

javafx.scene.media javadoc中记录了JavaFX支持的音频类型。支持的JavaFX 2.2格式是各种容器中的MP3,AAC和PCM,如mp3,mp4和wav文件。不支持其他格式,如Ogg Theora - 因此,如果您需要这样的格式,则需要与JavaFX 2.2不同的解决方案。

  

我见过有人提到JavaFX,但默认情况下这似乎没有安装JVM,因此我的程序将不再是跨平台的

默认情况下,JavaFX随Oracle Java运行时一起安装,因为Java 7更新6和JavaFX 2.2在OS X,Windows和Linux上运行。目前还没有广泛可用的解决方案在移动平台上运行JavaFX(虽然将来可能会有所改变)。

有关将JavaFX与Java 7结合使用的更多信息,请参阅我对Compiling and running with JavaFX 2.1以及JavaFX Deployment Guide的回答。

  

获取跟踪信息(操作系统跟踪)

大多数曲目信息实际上是在媒体文件中而不是在OS数据库中编码的。您可以从JavaFX播放的媒体文件中retrieve metadata。根据{{​​3}}中的定义,支持从媒体文件中解析有限数量的元数据。请注意,并非所有媒体都包含所有元数据我测试了media documentation,并且能够成功地从中提取大量元数据。来自iTunes的测试aac编码m4a文件的元数据大多是空的。因此结果取决于正在使用的媒体文件。

示例播放器

我在JavaFX中创建了一个a free mp3 file from amazon,它播放目录中的音频文件,显示每首歌曲的元数据。

audioplayer

java2s还托管sample music player的作者创建的source for a media player。这可能是比我的代码更好的参考,因为我的快速破解,而专业来源来自专业出版的书。

其他问题

  

我们这些人在Linux上没有使用Oracle的JRE的建议吗?

Oracle JRE在Linux上可用,但如果您不想使用它,则可以为Pro JavaFX 2 book构建openjfx并使用它,或者您可以使用Oracle JRE开发应用程序并使用它JavaFX打包工具将其分发为openjdk,因此它没有外部JRE依赖。