在开发音乐播放器时常常遇到要提取MP3文件的专辑信息和图片的情况,那怎么提取呢?其实提取这些信息是非常简单的。下面简单的提取沙盒中的一个MP3文件来进行说明:
NSString *path =[ [NSBundle mainBundle] pathForResource:@"歌曲名" ofType:@"mp3"];
NSURL *fileURL = [NSURL fileURLWithPath:path];
AVURLAsset *avURLAsset = [[AVURLAsset alloc] initWithURL:fileURL options:nil];
for (NSSting *format in [avURLAsset availableMetadataFormats]){
for (AVMetadataItem *metadata in [avURLAsset metadataForFormat:format]){
if([metadata.commonKey isEqualToString:@"title"]){
NSSting *title = (NSSting *)metadata.value;//提取歌曲名
}
if([metadata.commonKey isEqualToString:@"artwork"]){
UIImage *coverImage = [UIImage imageWithData:[(NSDictionary *)metadata.value objectForKey:@"data"]];//提取图片
}
//还可以提取其他所需的信息
}
}
AVURLAsset 类的声明在<AVFoundation/AVAsset.h>中,AVMetadataItem类的声明在<AVFoundation/AVMetadataItem.h>中。至此,通过上面的代码你可以得到所需要的MP3中的信息。