Pregunta

Estoy usando el marco de los reproductores multimedia para obtener la obra de arte de la canción que se reproduce actualmente, pero cada vez que se reproduce una canción que no tiene una obra de arte del álbum, el UiImageView en el que cargue la obra de arte está vacía. ¿Hay alguna manera de tener una imagen de marcador de posición que se muestre cada vez que se reproduce una canción sin obras de arte?

¿Fue útil?

Solución

Así es como uso un marcador de posición para canciones que no tienen obras de arte:

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

Otros consejos

Me encontré con el mismo problema ... básicamente funciona perfectamente en el simulador pero no en un dispositivo real ... en cambio hice lo siguiente:

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

y eso pareció solucionar el problema para que funcione tanto en el simulador como en el dispositivo real

Antes de hacer cambios, asegúrese de que UIIMAGEVIEW esté configurado en "Ajuste de aspecto" que funcionó para mí. No funcionó cuando tenía "escala para llenar".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top