4

MPMediaItemPropertyArtWork から UIImage を取得して、ビューに coverArt を表示する次のコードがあります。mediaItem から NULL 以外のアートワークを取得しますが、アートワークから UIImage を抽出しようとすると、NULL が返され、UIImageView に何も表示されません。どんな助けでも大歓迎です。

CGSize artworkSize = CGSizeMake(30, 30);
UIImage *artworkImage;
MPMediaItemArtwork *artwork = [song valueForProperty: MPMediaItemPropertyArtwork];
if (artwork) {
    NSLog(@"artwork available");
    artworkImage = [artwork imageWithSize:artworkSize];
} else {
    NSLog(@"artwork not available");
    artworkImage = [UIImage imageNamed:@"EmptyAlbum.png"];
}

NSLog(@"artworkImage = %@", artworkImage);

coverArtView.image = artworkImage;
4

5 に答える 5

3

これを試してください - UItableview を使用してアルバムの詳細を表示してください。

MPMediaItemCollection *userMediaCollection を宣言します。

 -(void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {

[self setUserMediaCollection:mediaItemCollection];

[self dismissModalViewControllerAnimated:YES];

  }


MPMediaItem *mItem = (MPMediaItem *)[userMediaCollection.items  objectAtIndex:indexPath.row];

    MPMediaItemArtwork *artWork = [mItem valueForProperty:MPMediaItemPropertyArtwork];

    cell.imageView.image = [artWork imageWithSize:CGSizeMake(30, 30)];

userMediaCollection は MPMediaItemCollection です

于 2011-07-26T14:03:13.863 に答える
1

これを試してください...それは仕事です。

CGSize artworkSize = CGSizeMake(30, 30);
UIImage *artworkImage;
MPMediaItemArtwork *artwork = [song valueForProperty: MPMediaItemPropertyArtwork];
artworkImage = [artwork imageWithSize:artworkSize];

if (artworkImage == nil) {
  NSLog(@"artwork not available");
  artworkImage = [UIImage imageNamed:@"EmptyAlbum.png"];
}

coverArtView.image = artworkImage;
于 2014-07-20T15:40:15.000 に答える
0

MPMusicPlayerController をどのように初期化しますか? そのはず:

MPMusicPlayerController *player = [MPMusicPlayerController iPodMusicPlayer];
于 2012-01-05T17:18:30.190 に答える
0

回答を参照してください: https://stackoverflow.com/a/26463261/883413

iOS のバグのようです。返された画像が nil の場合は、代わりにアートワーク サイズを使用してみてください。

UIImage *image = [artwork imageWithSize:size];
if (image == nil) {
    image = [artwork imageWithSize:artwork.bounds.size];
}
于 2016-03-02T09:26:41.370 に答える