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. Вы УВЕРЕНЫ, что у предмета действительно есть обложка? Воспроизвести эту песню в музыкальном приложении - произведение искусства?