使用JavaFX MediaPlayer从MP3读取ID3v2标记
我有一些MP3的,以前没有给我阅读元数据的问题。使用使用JavaFX MediaPlayer从MP3读取ID3v2标记,java,javafx,media-player,mp3,metadata,Java,Javafx,Media Player,Mp3,Metadata,我有一些MP3的,以前没有给我阅读元数据的问题。使用JavaFX的MediaPlayer.getMetadata()函数,我从mp3文件中获取所有数据,并将其存储在observemap映射中。这非常有效,然后我开始使用不同的MP3 标准显然是ID3v2,但我找不到任何关于getMetadata函数的文档,也找不到它解析的标签类型,以及它优先于其他类型的标签。现在,我可以设法获得艺术家、专辑、标题和专辑艺术家,但其他标签(如Track和Track Count)不再起作用。加载元数据时,首先打印对d
JavaFX
的MediaPlayer.getMetadata()
函数,我从mp3文件中获取所有数据,并将其存储在observemap
映射中。这非常有效,然后我开始使用不同的MP3
标准显然是ID3v2
,但我找不到任何关于getMetadata
函数的文档,也找不到它解析的标签类型,以及它优先于其他类型的标签。现在,我可以设法获得艺术家、专辑、标题和专辑艺术家,但其他标签(如Track和Track Count)不再起作用。加载元数据时,首先打印对data.toString()
的调用。数据对象是可观察地图
地图。它打印的格式很好,如下所示:
{album artist=LCD Soundsystem, artist=LCD Soundsystem, raw metadata={ID3=java.nio.HeapByteBufferR[pos=221 lim=4096 cap=4096]}, title=You Wanted a Hit, album=This Is Happening}
我以前使用的MP3在这张地图上有轨道、轨道总数、年份和其他元数据,我不知道为什么它们不再阅读。我试图在MP3标签编辑器中保存所有格式的标签(包括ID3v1
、ID3v2
和APE
),但它仍然拒绝加载这些特定的标签
对于
getMetadata
函数,我仍然没有找到任何超过常规Oracle javadoc的文档,如果有人能为我指出正确的方向,那就太好了。看起来我已经解决了这个问题。我使用的标记实用程序默认为ID3v2。3@utf16
。我使用MP3Tag
将它们转换为ID3v2。4@utf8
。所有字段现在都已正确加载
如果有人能提供关于地图中返回的数据类型或它将返回的其他标记的额外文档,那就太好了。看起来我已经解决了这个问题。我使用的标记实用程序默认为
ID3v2。3@utf16
。我使用MP3Tag
将它们转换为ID3v2。4@utf8
。所有字段现在都已正确加载
如果有人能够提供关于地图中返回的数据类型或其他标记的额外文档,那就太好了