我知道 mp3 有时包含专辑插图(就我而言,我正在处理播客文件)。 iOS 有没有办法从 mp3 文件中提取图像数据?
MP3(包括播客)通常具有嵌入的元数据,包括艺术品。获取嵌入元数据(对于不在 iTunes 库中的 MP3)的最简单方法是通过AVAsset
班级。如果您尝试通过网络获取元数据,请使用AVURLAsset
相反,但访问元数据与两者相同。
AVAsset
has an NSArray
属性名为commonMetadata
其中包含类的实例AVMetadataItem
。您可以迭代该数组以查找带有commonKey
(通常)“artwork
" The value
这个的属性AVMetadataItem
应该是一个NSDictionary
有关艺术品的数据。在这本词典中,您将找到关键“data
“ 其中应该包含可用于构建UIImage
。这是相当嵌套的,而且这个描述确实令人困惑。这是一个代码示例。
NSURL *url = <# url of resource here #>;
AVAsset *asset = [AVAsset assetWithURL:url];
for (AVMetadataItem *metadataItem in asset.commonMetadata) {
if ([metadataItem.commonKey isEqualToString:@"artwork"]){
NSDictionary *imageDataDictionary = (NSDictionary *)metadataItem.value;
NSData *imageData = [imageDataDictionary objectForKey:@"data"];
UIImage *image = [UIImage imageWithData:imageData];
// Display this image on my UIImageView property imageView
self.imageView.image = image;
}
}
这又是一个如何从本地资源加载的非常简单的示例;如果您通过网络加载它,您应该使用AVURLAsset
。还要注意此调用的阻塞性质。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)