Objective c AVFoundation获得歌曲的专辑图像
我想得到这首歌的专辑图像/封面。可能吗?我正在使用AVPlayer进行音频流传输,如果歌曲包含,我需要获得专辑封面。就像在iTunes中一样 解决方案:Objective c AVFoundation获得歌曲的专辑图像,objective-c,ios,avfoundation,avplayer,Objective C,Ios,Avfoundation,Avplayer,我想得到这首歌的专辑图像/封面。可能吗?我正在使用AVPlayer进行音频流传输,如果歌曲包含,我需要获得专辑封面。就像在iTunes中一样 解决方案: UIImage *img = nil; NSArray *metadata = _avplayer.currentItem.asset.commonMetadata; for(AVMetadataItem *item in metadata){ if([item.commonKey isEqualToString:@"artwork"]
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;
如果您的文件是正确的格式,即MP3,您可以将文件的数据加载到ID3标记解析器中。它是为OS X设计的,但看起来应该可以很容易地移植到iOS。您应该试试这个,但我使用的是MPMusicLayer:
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);
}
}
正如您所看到的,我使用NSMakerRange,只是为了不在应用程序中留下空间。我希望这对您有所帮助这只供本地玩家使用。我需要在流媒体播放时获得图像:)但谢谢,这将有助于某些时候还需要流媒体音乐的专辑封面!你好,你知道如何获得专辑封面了吗?我试图使用上一个调频服务,但我的收音机里的歌手不受欢迎,所以我无法得到专辑封面((