【发布时间】:2013-12-14 10:05:17
【问题描述】:
我有一些以前在读取元数据时没有问题的 MP3。使用JavaFX 的MediaPlayer.getMetadata() 函数,我从mp3 文件中获取所有数据并将其存储在ObservableMap<String, Object> 映射中。这很好用,然后我开始使用不同的 MP3。
标准显然是ID3v2,但我找不到任何关于getMetadata 函数以及它解析的标签类型以及它优先于其他类型的文档。现在我可以设法获取艺术家、专辑、标题和专辑艺术家,但其他标签(如曲目和曲目计数)不再起作用。当我加载元数据时,我首先打印出对data.toString() 的调用。数据对象是ObservableMap<String, Object> 映射。它打印的格式很好,如下所示:
{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 文档,如果有人能指出我正确的方向,那就太好了。
【问题讨论】:
标签: java javafx media-player mp3 metadata