Медиаплеер без заполнителя обложки альбома

Я использую структуру медиаплеера, чтобы получить обложку воспроизводимой в данный момент песни, но каждый раз, когда воспроизводится песня, в которой нет обложки альбома, UIImageView, в который я загружаю обложку, пуст. Есть ли способ иметь замещающее изображение, которое отображается каждый раз, когда воспроизводится песня без обложки?


person kopproduction    schedule 06.09.2011    source источник


Ответы (3)


Вот как я использую заполнитель для песен, у которых нет обложки:

artworkImageView = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,160,160)];

CGSize artworkImageViewSize = artworkImageView.bounds.size;
artwork = [currentItem valueForProperty:MPMediaItemPropertyArtwork];
if (artwork != nil) {
    artworkImageView.image = [artwork imageWithSize:artworkImageViewSize];
}else{
    artworkImageView.image = [UIImage imageNamed:@"NoAlbumArt.png"];
}
person WrightsCS    schedule 06.09.2011
comment
Хм, спасибо, но это не сработало. UIImageView по-прежнему пуст, noAlbumArt.png отображается только тогда, когда я закрываю приложение iPod, которое воспроизводится в фоновом режиме... есть идеи? - person kopproduction; 06.09.2011
comment
NoAlbumArt.png должен быть в вашем комплекте. Опубликуйте код, на который вы подаете иск, потому что это отлично работает для меня. - person WrightsCS; 06.09.2011

Я столкнулся с той же проблемой... в основном он отлично работает на симуляторе, но не на реальном устройстве... вместо этого я сделал следующее:

artworkImageView = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,160,160)];
CGSize artworkImageViewSize = artworkImageView.bounds.size;
artwork = [currentItem valueForProperty:MPMediaItemPropertyArtwork];
if (artwork != nil) {
     artworkImageView.image = [artwork imageWithSize:artworkImageViewSize];
     if(artworkImageView.image == NULL){
          artworkImageView.image = [UIImage imageNamed:@"NoAlbumArt.png"];
     }
}

и это, похоже, решило проблему, поэтому оно работает как на симуляторе, так и на реальном устройстве.

person R.J.    schedule 22.05.2013

Прежде чем вносить изменения, убедитесь, что для UIImageView установлено значение «Соответствие пропорций», которое сработало для меня. Это не сработало, когда у меня была «Масштаб для заполнения».

person Sai Jithendra    schedule 29.12.2014