gracenote API中的SELECT_EXTENDED = COVER选项不返回图稿

时间:2015-01-15 22:09:34

标签: c# xml gracenote

gracenote samples page表示,当提供选项SELECT_EXTENDED=COVER时,可以接收多个相册的数据,包括一个albumart网址(COVER_SIZE被忽略)。

我的xml请求看起来像

<QUERIES>
<AUTH>
    <CLIENT>xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</CLIENT>
    <USER>xxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</USER>
</AUTH>
<LANG>ger</LANG>
<COUNTRY>deu</COUNTRY>
<QUERY CMD="ALBUM_SEARCH">
    <TEXT TYPE="ARTIST">The Beatles</TEXT>
    <TEXT TYPE="ALBUM_TITLE">Help</TEXT>
    <RANGE>
        <START>1</START>
        <END>20</END>
    </RANGE>
    <OPTION>
        <PARAMETER>SELECT_EXTENDED</PARAMETER>
        <VALUE>COVER</VALUE>
    </OPTION>
</QUERY>

```

我使用该范围来接收每张专辑的数据,但没有一个包含网址。 我切换到C#API并编写了一个小程序

ParkSquare.Gracenote.GracenoteClient c = new ParkSquare.Gracenote.GracenoteClient("xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
ParkSquare.Gracenote.AlbumSearcher s=new ParkSquare.Gracenote.AlbumSearcher(c);

ParkSquare.Gracenote.SearchCriteria cr=new ParkSquare.Gracenote.SearchCriteria();
cr.AlbumTitle = "help";
cr.Artist = "the beatles";
cr.SearchOptions = ParkSquare.Gracenote.SearchOptions.Cover;
cr.SearchMode = ParkSquare.Gracenote.SearchMode.Default;

for (var ilauf = 0; ilauf < 5; ilauf++)
{
    cr.Range = new ParkSquare.Gracenote.Range((ilauf * 20) + 1, (ilauf+1) * 20 );
    ParkSquare.Gracenote.SearchResult sr = s.Search(cr);
    foreach(var a in sr.Albums)  {
        Console.WriteLine( string.Format("{0} {1}",a.Title, a.Artwork.Count()) );
    }
}
Console.ReadLine();

它没有显示任何专辑的albumart。 有错误吗?我错过了什么吗? API是否已更改且不再支持该功能?

1 个答案:

答案 0 :(得分:1)

我有同样的问题。令人惊讶的是,使用MODE = SEARCH_BEST_COVER搜索封面会返回作品(当然有一个很大的缺点:结果列表只包含一个专辑)。