MPMediaItemArtwork имеет значение null, а обложка доступна в iTunes

UIImage "image" всегда пусто ("null"), хотя обложка отображается в музыкальном приложении яблоком. в iOS 7 это работает нормально, но с iOS 8 я не получаю прикрытие.

Что не так с моим кодом или что изменилось в iOS 8?

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    AlbumCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AlbumCell"];
    MPMediaItemCollection *song = self.songsList[indexPath.row];

    cell.albumName.text = [[song representativeItem] valueForProperty: MPMediaItemPropertyAlbumTitle];

    cell.albumArtist.text = [[song representativeItem] valueForProperty:MPMediaItemPropertyAlbumArtist];


    CGSize artworkImageViewSize = CGSizeMake(100, 100);
    MPMediaItemArtwork *artwork = [song valueForProperty:MPMediaItemPropertyArtwork];
    UIImage *image = [artwork imageWithSize:artworkImageViewSize];

    NSLog(@"-------------------");
    NSLog(@"%@",[[song representativeItem] valueForProperty: MPMediaItemPropertyAlbumTitle]);
    NSLog(@"%@",image);

    if (artwork) {

        cell.cover.image = image;
    }
    else
    {
        cell.cover.image = [UIImage imageNamed:@"nocover.png"];
    }

    return cell;
}

3 ответа

Начиная с iOS 8, MPMediaItemселектор imageWithSize:(CGSize)size кажется, не гарантирует, что он вернет изображение. Если изображение не было получено в требуемом размере, позвоните еще раз с размером изображения bounds имущество:

MPMediaItemArtwork *artwork = [self valueForProperty:MPMediaItemPropertyArtwork];
UIImage *image = [artwork imageWithSize:size];
if (image == nil) {
    image = [artwork imageWithSize:artwork.bounds.size];
}

Я нашел проблему.

его

 CGSize artworkImageViewSize = CGSizeMake(100, 100);

следующие работы:

 CGSize artworkImageViewSize = CGSizeMake(120, 120);

или же

 CGSize artworkImageViewSize = CGSizeMake(60, 60);

все что можно разделить на 3 работы.

Ваш код выглядит хорошо. У меня есть тот же код для получения обложки, и он работает для меня на iOS 8. Вы УВЕРЕНЫ, что у предмета действительно есть обложка? Воспроизвести эту песню в музыкальном приложении - произведение искусства?

Другие вопросы по тегам