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

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

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

有什么建议么?

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

我将提供有关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的更多信息是我在编译和运行JavaFX 2.1以及JavaFX部署指南时的答案。

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

大多数跟踪信息实际上是在媒体文件中而不是在OS数据库中编码的。 您可以从JavaFX播放的媒体文件中检索元数据 。 根据媒体文档中的定义,支持从媒体文件中解析有限数量的元数据。 请注意,并非所有媒体都包含所有元数据 我测试了亚马逊的免费mp3文件,并能够成功地从中提取大量元数据。 来自iTunes的测试aac编码m4a文件的元数据大多是空的。 因此结果取决于所使用的媒体文件。

样品播放器

我在JavaFX中创建了一个示例音乐播放器 ,它播放目录中的音频文件,显示每首歌曲的元数据。

audioplayer

java2s还是Pro JavaFX 2书籍作者创建的媒体播放器的主机源 。 这可能是比我的代码更好的参考,因为我的是一个快速的黑客,而专业来源是一本专业出版的书。

其他问题

对于那些我们这些不使用Oracle JRE的人的建议?

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