从MP3文件/ID3标签获取专辑封面艺术品

4

我试图从一个 MP3 文件中获取专辑封面。

在这种情况下,我使用 AVAudioPlayer 来播放文件。

以下是我认为可以获取专辑封面的代码:

MPMusicPlayerController *controller = [MPMusicPlayerController applicationMusicPlayer];

MPMediaItem *current = controller.nowPlayingItem;

MPMediaItemArtwork *artwork = [current valueForProperty:MPMediaItemPropertyArtwork];
UIImage *artwork2 = [artwork imageWithSize:artwork.bounds.size];
[artworkView setImage:artwork2];

然而,artworkView 并不包含任何图像。

我有点困惑。

如果有人能提供建议,告诉我从ID3标签中直接获取艺术品的方法或位置,那将是非常有用的。

感谢任何帮助。

1个回答

4
你需要在这里使用enumerateValuesForProperties,这是一个示例:
[item enumerateValuesForProperties:[NSSet setWithObjects:MPMediaItemPropertyTitle,MPMediaItemPropertyAlbumTitle,MPMediaItemPropertyArtist,MPMediaItemPropertyArtwork,nil]
                                 usingBlock:^(NSString *property, id value, BOOL *stop) {
                                     if ([property isEqualToString:MPMediaItemPropertyTitle]){
                                         if (value){
                                             titre=value;
                                         }else {
                                             titre=@"";
                                         }
                                     }
                                     if ([property isEqualToString:MPMediaItemPropertyArtist]){
                                         if(value){
                                             artist=value;
                                         }else {
                                             artist=@"";
                                         }

                                     }
                                     if ([property isEqualToString:MPMediaItemPropertyArtwork]){
                                         MPMediaItemArtwork *art=value;
                                         if (art!=nil){
                                             imgV.image=[art imageWithSize:CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.width)];
                                     }

                                     }


                                 }];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接