Получить обложку альбома из файла MP3 / тега ID3 - PullRequest
4 голосов
/ 05 февраля 2011

Я пытаюсь получить обложку альбома из файла 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 голосов
/ 05 февраля 2011

Вы должны использовать 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)];
                                     }

                                     }


                                 }];
...