Frage

Ich benutze das Media Player -Framework, um das Kunstwerk des derzeit gespielten Songs zu erhalten, aber jedes Mal, wenn ein Song gespielt wird und kein Album -Kunstwerk hat, ist das UIImageView, in das ich das Kunstwerk lade, leer. Gibt es eine Möglichkeit, ein Platzhalterbild zu haben, das jedes Mal angezeigt wird, wenn ein Lied ohne Kunstwerke gespielt wird?

War es hilfreich?

Lösung

So verwende ich einen Platzhalter für Songs, die kein Kunstwerk haben:

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"];
}

Andere Tipps

Ich bin auf das gleiche Problem gestoßen ... im Grunde funktioniert es perfekt auf dem Simulator, aber nicht auf einem tatsächlichen Gerät ... Stattdessen habe ich Folgendes gemacht:

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"];
     }
}

Und das schien das Problem zu beheben, so dass es sowohl auf dem Simulator als auch auf dem tatsächlichen Gerät funktioniert

Bevor Sie Änderungen vornehmen, stellen Sie bitte sicher, dass UIImageView auf "Aspektanpassung" eingestellt ist, was für mich funktioniert hat. Es funktionierte nicht, als ich "Skala zum Füllen" hatte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top