【问题标题】:download cover art from musicbrainz with java使用 java 从 musicbrainz 下载封面艺术
【发布时间】:2014-02-02 16:39:40
【问题描述】:

我现在正在为如何将 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 ......但这不是最好的选择。

我很高兴朝着正确的方向前进...

干杯, 编。

【问题讨论】:

    标签: java albumart musicbrainz


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      相关资源
      最近更新 更多