質問

私はメディアプレーヤーフレームワークを使用して、現在再生されている曲のアートワークを取得していますが、アルバムアートワークがない曲が再生されるたびに、アートワークをロードするUIIMAGEVIEWは空です。アートワークのない曲が再生されるたびに表示されるプレースホルダー画像を持つ方法はありますか?

役に立ちましたか?

解決

これは、アートワークを持っていない曲にプレースホルダーを使用する方法です。

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

他のヒント

私は同じ問題に遭遇しました...基本的にそれはシミュレータで完全に動作しますが、実際のデバイスではありません...代わりに次のことをしました。

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

そして、それは問題を修正したように見えたので、シミュレーターと実際のデバイスの両方で動作します

変更を加える前に、UIImageViewが私に合った「アスペクトフィット」に設定されていることを確認してください。 「埋めるためのスケール」があったとき、それはうまくいきませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top