5

iPodライブラリのオーディオブックからアルバムアートを取得したいのですが、使い方がわかりませんMPMediaItemPropertyArtwork

- (NSArray *)audiobooks
{
    MPMediaPropertyPredicate *abPredicate =
    [MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInt:MPMediaTypeAudioBook]
                                     forProperty:MPMediaItemPropertyMediaType];

    MPMediaQuery *abQuery = [[MPMediaQuery alloc] init];
    [abQuery addFilterPredicate:abPredicate];
    [abQuery setGroupingType:MPMediaGroupingAlbum];
    NSArray *books = [abQuery collections];
    return books;
}

- (MPMediaItem *)mediaItemForRow: (NSInteger)row
{
    NSArray *audiobooks = self.audiobooks;
    MPMediaItem *mediaItem = nil;

    for (id object in audiobooks) {
        if ([object isKindOfClass:[MPMediaItemCollection class]]) {
            MPMediaItemCollection *book = (MPMediaItemCollection *)object;

            id item = [book items][row];
            if ([item isKindOfClass:[MPMediaItem class]]) {
                mediaItem = (MPMediaItem *)item;

            }
        }
    }
    return mediaItem;
}

これで、次のようなメディア アイテムのタイトルを取得できます。

NSString *title = [mediaItem valueForProperty:MPMediaItemPropertyArtist];

しかし、UIImage に表示できるようにアートワークを取得するにはどうすればよいですか? このプロパティがあります:

[mediaItem valueForProperty:MPMediaItemPropertyArtwork]

私はそれを使用する方法を見つけることができませんでした。

4

2 に答える 2

9

次の方法で、アートワークを UIImage にフェッチできるはずです。

MPMediaItemArtwork *itemArtwork = [mediaItem valueForProperty:MPMediaItemPropertyArtwork];
UIImage *artworkUIImage = [itemArtwork imageWithSize:CGSizeMake(64, 64)];

基本的に、このMPMediaItemPropertyArtworkプロパティは MPMediaItemArtwork を返し、そこから UIImage を取得できます。

于 2013-08-25T08:55:34.183 に答える