0

ディスク ID を 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 のディスク ID を簡単に (多かれ少なかれ) 抽出できますが、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) を試して、最初に取得したカバー アートを使用することをお勧めします。

残念ながら、web 上の musicbrainzws2 の API ドキュメントについては知りません。javadocすべてのソース ファイルで実行することをお勧めします。

于 2014-02-03T03:47:49.580 に答える