从Album Id中检索MPMediaItemArtwork

时间:2014-05-02 09:01:08

标签: ios objective-c mpmediaquery

我有一张albumId(说“-7833645336740617216”)。我正在寻找一种类似的方法,可以将其作为输入,并返回与此专辑相关联的MPMediaItemArtwork。

1 个答案:

答案 0 :(得分:0)

一种方法是使用MPMediaPropertyPredicate获取相册,然后使用谓词执行MPMediaQuery。然后从相册的代表项中获取MPMediaItemPropertyArtwork属性的值:

- (MPMediaItemArtwork *)albumArtworkForAlbumID:(NSNumber *)albumID
{
    MPMediaPropertyPredicate *albumIDPredicate;
    albumIDPredicate = [MPMediaPropertyPredicate predicateWithValue:albumID
                                                        forProperty:MPMediaItemPropertyAlbumPersistentID];

    NSSet *predicateSet = [NSSet setWithObject:albumIDPredicate];
    MPMediaQuery *albumQuery;
    albumQuery = [[MPMediaQuery alloc] initWithFilterPredicates:predicateSet];

    MPMediaItemCollection *album;
    album = [albumQuery.collections firstObject];

    return [album.representativeItem valueForProperty:MPMediaItemPropertyArtwork];
}