2011-10-19 24 views
17

görüntüler. Tüm I (boş bir ekran göstererek aksine) Kendi varsayılan resim göstermek için mümkün istiyorum hiçbir sanat eserleri ile bir şarkı oynarken dışında iyi gidiyor. AşağıdaiOS - MPMediaItem Şu anda Müzik çalarda dinlediğiniz sanatçı, parça ve albüm sanatı gösteren bir uygulama geliştiriyorum Varsayılan Artwork

Ben itemArtwork asla nil olduğu gibi ancak asla başka içine alır çalışmak GEREKEN hayal yöntemim!

Sen yardım takdir edilmektedir.

sayesinde, Ben

_item = [_player nowPlayingItem]; 
MPMediaItemArtwork *itemArtwork = [_item valueForProperty:MPMediaItemPropertyArtwork]; 

if (itemArtwork != nil) { 
    UIImage *albumArtworkImage = [itemArtwork imageWithSize:CGSizeMake(250.0, 250.0)]; 
    _albumArtImageView.image = albumArtworkImage; 
} else { // no album artwork 
    NSLog(@"No ALBUM ARTWORK"); 
    _albumArtImageView.image = [UIImage imageNamed:@"kol.jpg"]; 
} 

cevap

33

MPMediaItemArtwork bile her zaman sanat yoksa parçaları için, pek bulunmamaktadır.

Görüntünün olup olmadığını algıladığım yol ise MPMediaItemArtwork'in imageWithSize'nin NULL değerini döndürüp döndürmediğini görmek.

Veya, kod biraz rejiggering:

_item = [_player nowPlayingItem]; 
UIImage *albumArtworkImage = NULL; 
MPMediaItemArtwork *itemArtwork = [_item valueForProperty:MPMediaItemPropertyArtwork]; 

if (itemArtwork != nil) { 
    albumArtworkImage = [itemArtwork imageWithSize:CGSizeMake(250.0, 250.0)]; 
} 

if (albumArtworkImage) { 
    _albumArtImageView.image = albumArtworkImage; 
} else { // no album artwork 
    NSLog(@"No ALBUM ARTWORK"); 
    _albumArtImageView.image = [UIImage imageNamed:@"kol.jpg"]; 
} 

Umarım bu bilgiler size yardımcı oluyor (ve eğer öyleyse

+1

Teşekkür Michael, aynen ben .. hepsi çok basit şimdi ne gerek! ITunes arşivini herkesin benim gibi tutması çok daha kolay olurdu! Tekrar teşekkürler, Ben –

3

:-) kontrol olarak sadece kontrol etmek gerekiyorsa, bu cevabı işaretlemek umut sanat da itemArtwork.bounds özelliğini kontrol edilebilir (muhtemelen işlemci döngüleri çok yakar görüntü, kapma olmadan) var olup. sanat yoksa, bounds.size.width ve bounds.size.height özellikleri 0 olacaktır:

MPMediaItemArtwork *artwork = [_item valueForProperty:MPMediaItemPropertyArtwork]; 
BOOL hasArtwork = (artwork.bounds.size.width > 0 && artwork.bounds.size.height > 0); 
+0

Güzel, kesinlikle bu bir dahaki sefere denemek verecek! –

İlgili konular