Получить MPMediaItemArtwork из идентификатора альбома

У меня есть идентификатор альбома (скажем, "-7833645336740617216"). Я смотрю на похожий метод, который может принять это в качестве входных данных и вернуть MPMediaItemArtwork, связанный с этим альбомом.

1 ответ

Один из способов - загрузить альбом с 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];
}
Другие вопросы по тегам