0

我现在正在为如何将 discid 链接到 musicbrainz mbid 苦苦挣扎几个小时。

所以,使用dietmar-steiner / JMBDiscId

JMBDiscId discId = new JMBDiscId();

if (discId.init(PropertyFinder.getProperty("libdiscid.path")))
{
    String musicBrainzDiscID = discId.getDiscId(PropertyFinder.getProperty("cdrom.path"));
}

或 musicbrainzws2-java

Disc controller = new Disc();
String drive = PropertyFinder.getProperty("cdrom.path"); 

try {
    DiscWs2 disc =controller.lookUp(drive);
    log.info("DISC: " + disc.getDiscId() + " match: " + disc.getReleases().size() + " releases");
....

我可以轻松地(或多或少地)为 freedb 或 musicbrainz 提取一个 discid,但我还没有找到一种方法来计算我需要通过来自 last.fm 的 CoverArtArchiveClient 下载封面艺术的 id。

CoverArtArchiveClient client = new DefaultCoverArtArchiveClient();

try
{
  UUID mbid = UUID.fromString("mbid to locate release");
  fm.last.musicbrainz.coverart.CoverArt coverArt = client.getByMbid(mbid);

理论上,我假设,我可以让你使用 musicbrainzws2-java 收集的数据来触发搜索,然后使用结果中的 mbid ......但这不是最好的选择。

我对朝着正确方向的任何推动感到高兴...

干杯,埃德。

4

1 回答 1

0

您不计算 MBID。MBID 附加在您从 MusicBrainz 检索的每个实体上。通过 DiscID 获取版本时,您会得到一个列表。每个条目都是一个版本,并具有一个 MBID,可通过以下方式访问getId()

for (ReleaseWs2 rel : disc.getReleases()){
   log.info("MBID: " + rel.getId() + ", String: " + rel.toString());
}

然后,您可能想为每个版本尝试 CoverArtArchive (CAA) 并获取您获得的第一个封面艺术。

不幸的是,我不知道网络上有任何关于 musicbrainzws2 的 API 文档。我建议javadoc在所有源文件上运行。

于 2014-02-03T03:47:49.580 回答