IOS读取mp3的摘要信息

本文介绍了一种在iOS设备上从mp3文件中读取封面缩略图的方法,并提供了一个具体的代码示例。该方法通过遍历资源文件夹中的mp3文件,利用AVURLAsset获取文件元数据,进而提取封面图片。

 前一段一个朋友问我有没有方法在iPhone下读取mp3的缩略图,我去查查了文档果然是有方法的,写出来方便与大家交流。

 要知道怎么读取首先得知道它是存在哪的,经我了解发现mp3的摘要信息存储在mp3的开头或末尾的若干字节里。主流的格式是id3,还有itunes之类的。我们这次要读的就是id3,相关信息就自己去wiki或是百度百科去吧,我就不粘贴了。上代码:

  1     //取出资源文件下的所有mp3路径

复制代码
 2     NSArray *mp3Array = [NSBundle pathsForResourcesOfType: @" mp3 " inDirectory:[[NSBundle mainBundle] resourcePath]];
 3      for (NSString *filePath  in mp3Array) {
 4          // IOS的资源路径封装,网络文件用urlWithPath:
 5         NSURL *fileURL = [NSURL fileURLWithPath:filePath];
 6         AVURLAsset *mp3Asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
 7          for (NSString *format  in [mp3Asset availableMetadataFormats]) {
 8             NSLog( @" format type = %@ ",format);
 9              for (AVMetadataItem *metadataItem  in [mp3Asset metadataForFormat:format]) {
10                 NSLog( @" commonKey = %@ ",metadataItem.commonKey);
11                  // artwork这个key对应的value里面存的就是封面缩略图,其它key可以取出其它摘要信息,例如title - 标题
12                  if ([metadataItem.commonKey isEqualToString: @" artwork "]) {
13                     NSData *data = [(NSDictionary*)metadataItem.value objectForKey: @" data "];
14                     NSString *mime = [(NSDictionary*)metadataItem.value objectForKey: @" MIME "];
15                     NSLog( @" mime = %@, data = %@, image = %@ ", mime, data, [UIImage imageWithData:data]);
16                      break;
17                 }
18             }
19         }
复制代码  }

  

 这个读取方法,我认为是有缺陷的,我在mac下文件预览有封面缩略图的mp3有一些是用这方法读不出来的,如果有哪位朋友知道的话还望赐教。 

转载于:https://www.cnblogs.com/ligun123/archive/2012/06/11/2545352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值