AVFoundation получить альбомное изображение песни - PullRequest
3 голосов
/ 01 сентября 2011

Я хочу получить изображение альбома / обложку песни. Является ли это возможным? Я использую AVPlayer для потокового аудио, и мне нужно получить обложку альбома, если песня содержит его. Как в iTunes.

РЕШЕНИЕ:

UIImage *img = nil;
NSArray *metadata = _avplayer.currentItem.asset.commonMetadata;
for(AVMetadataItem *item in metadata){
    if([item.commonKey isEqualToString:@"artwork"]){
       NSData *data = item.value[@"data"];
       img = [UIImage imageWithData:data];
       return img;
    }
}
return img;

Ответы [ 2 ]

1 голос
/ 01 сентября 2011

Вы должны попробовать это, но я использую MPMusicPlayer:

musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
currentItem = [musicPlayer nowPlayingItem];
if (currentItem == nil) {
    //Not playing
}
else 
{
    NSString *name = [currentItem valueForProperty:@"title"];
    int length = [name length];
    if (length > 30) {
        name = [name substringWithRange:NSMakeRange(0, 30)];
        name = [name stringByAppendingString:@"..."];
    }
    NSString *album = [currentItem valueForProperty:@"albumTitle"];
    int lengthAl = [album length];
    if (lengthAl > 30) {
        album = [album substringWithRange:NSMakeRange(0, 30)];
        album = [album stringByAppendingString:@"..."];
    }
    NSString *artist = [currentItem valueForProperty:@"artist"];
    int lengthAr = [artist length];
    if (lengthAr > 30) {
        artist = [artist substringWithRange:NSMakeRange(0, 30)];
        artist = [artist stringByAppendingString:@"..."];
    }
    MPMediaItemArtwork *artworkPrev = [currentItem valueForProperty:@"artwork"];
    if (artworkPrev != nil)
    {
        UIImage *img = [artworkPrev imageWithSize:CGSizeMake(65, 65)];
        UIImageView *imgNew = [[UIImageView alloc] initWithImage:img];
        imgNew.frame = CGRectMake(-15,-20, 65, 65);
    }
}

Как вы видите, я использую NSMakeRange, я использую его только для того, чтобы не оставлять места в моем приложении. Я надеюсь, что это поможет вам

0 голосов
/ 01 сентября 2011

Если ваши файлы имеют правильный формат, то есть MP3, вы можете загрузить данные файла в анализатор тегов ID3. Вот один из примеров. Он сделан для OS X, но, похоже, должен довольно легко портировать на iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...