IOS开发——获取本地音频文件(属性/信息)
来源:互联网 发布:google chrome mac版 编辑:程序博客网 时间:2024/05/21 10:39
IOS开发——获取本地音频文件(属性/信息)
要使用AVURLAsset需要引用#import <AVFoundation/AVFoundation.h>,框架
文末附图:
获取本地音频文件地址:
NSString *songsDirectory=MUSIC_FILE_ALL;//沙盒地址 NSBundle *songBundle=[NSBundle bundleWithPath:songsDirectory]; NSString *bundlePath=[songBundle resourcePath]; NSArray *arrMp3=[NSBundle pathsForResourcesOfType:@"mp3" inDirectory:bundlePath]; for (NSString *filePath in arrMp3) { [self.wMp3URL addObject:filePath]; }
解析音频文件属性:
-(void)mDefineUpControl{ NSString *filePath = [self.wMp3URL objectAtIndex: 0 ];//随便取一个,说明 //文件管理,取得文件属性 NSFileManager *fm = [NSFileManager defaultManager]; NSDictionary *dictAtt = [fm attributesOfItemAtPath:filePath error:nil]; //取得音频数据 NSURL *fileURL=[NSURL fileURLWithPath:filePath]; AVURLAsset *mp3Asset=[AVURLAsset URLAssetWithURL:fileURL options:nil]; NSString *singer;//歌手 NSString *song;//歌曲名 UIImage *image;//图片 NSString *albumName;//专辑名 NSString *fileSize;//文件大小 NSString *voiceStyle;//音质类型 NSString *fileStyle;//文件类型 NSString *creatDate;//创建日期 NSString *savePath; //存储路径 for (NSString *format in [mp3Asset availableMetadataFormats]) { for (AVMetadataItem *metadataItem in [mp3Asset metadataForFormat:format]) { if([metadataItem.commonKey isEqualToString:@"title"]){ song = (NSString *)metadataItem.value;//歌曲名 }else if ([metadataItem.commonKey isEqualToString:@"artist"]){ singer = (NSString *)metadataItem.value;//歌手 } // 专辑名称 else if ([metadataItem.commonKey isEqualToString:@"albumName"]) { albumName = (NSString *)metadataItem.value; }else if ([metadataItem.commonKey isEqualToString:@"artwork"]) { NSDictionary *dict=(NSDictionary *)metadataItem.value; NSData *data=[dict objectForKey:@"data"]; image=[UIImage imageWithData:data];//图片 } } } savePath = filePath; float tempFlo = [[dictAtt objectForKey:@"NSFileSize"] floatValue]/(1024*1024); fileSize = [NSString stringWithFormat:@"%.2fMB",[[dictAtt objectForKey:@"NSFileSize"] floatValue]/(1024*1024)]; NSString *tempStrr = [NSString stringWithFormat:@"%@", [dictAtt objectForKey:@"NSFileCreationDate"]] ; creatDate = [tempStrr substringToIndex:19]; fileStyle = [filePath substringFromIndex:[filePath length]-3]; if(tempFlo <= 2){ voiceStyle = @"普通"; }else if(tempFlo > 2 && tempFlo <= 5){ voiceStyle = @"良好"; }else if(tempFlo > 5 && tempFlo < 10){ voiceStyle = @"标准"; }else if(tempFlo > 10){ voiceStyle = @"高清"; } NSArray *tempArr = [[NSArray alloc] initWithObjects:@"歌手:",@"歌曲名称:",@"专辑名称:",@"文件大小:",@"音质类型:",@"文件格式:",@"创建日期:",@"保存路径:", nil]; NSArray *tempArrInfo = [[NSArray alloc] initWithObjects:singer,song,albumName,fileSize,voiceStyle,fileStyle,creatDate,savePath, nil]; for(int i = 0;i < [tempArr count]; i ++){ NSString *strTitle = [tempArr objectAtIndex:i]; UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(5, 5+i*30, 16*[strTitle length], 25)]; [titleLab setText:strTitle]; [titleLab setTextColor:[WASharedFontStyle mGetSharedFontColor]]; [titleLab setFont:[UIFont systemFontOfSize:16]]; [self.wInfoSV addSubview:titleLab]; NSString *strInfo = [tempArrInfo objectAtIndex:i]; UILabel *infoLab = [[UILabel alloc] initWithFrame:CGRectMake(titleLab.frame.origin.x+titleLab.bounds.size.width+5, 5+i*30, self.view.bounds.size.width-(titleLab.frame.origin.x+titleLab.bounds.size.width+5)-5, 25)]; [infoLab setText:strInfo]; [infoLab setTextColor:[WASharedFontStyle mGetSharedFontColor]]; [infoLab setFont:[UIFont systemFontOfSize:16]]; [self.wInfoSV addSubview:infoLab]; if(i == [tempArr count]-1){ [infoLab setFrame:CGRectMake(titleLab.frame.origin.x+titleLab.bounds.size.width+5, 5+i*30, self.view.bounds.size.width-(titleLab.frame.origin.x+titleLab.bounds.size.width+5)-5, 30*4)]; [infoLab setLineBreakMode:NSLineBreakByWordWrapping]; [infoLab setFont:[UIFont systemFontOfSize:12]]; [infoLab setNumberOfLines:0]; } [self.wInfoSV setContentSize:CGSizeMake(self.view.bounds.size.width, i*45)]; }}
0 0
- IOS开发——获取本地音频文件(属性/信息)
- IOS开发——获取本地音频文件(属性/信息)
- IOS开发——获取本地音频文件(属性/信息)
- iOS开发—03封装音频文件播放工具类
- iOS开发拓展篇—封装音频文件播放工具类
- iOS开发拓展篇—封装音频文件播放工具类
- iOS开发拓展篇—封装音频文件播放工具类
- Android 获取本地所有音频文件
- 获取音频文件的ID3信息
- iOS开发:获取一个视频、音频文件的播放时长
- 获取本地音频文件 FreeStreamer播放本地音频
- ios开发——获取当前设备信息
- iOS开发获取本地通讯录
- IOS开发—— 获取AppDelegate的属性或字段
- ios获取本地图片以及图片信息
- IOS开发—本地推送
- iOS扫描本地音频文件及后台播放
- iOS 用 AVPlayer 播放一个本地音频文件
- powerdesign sql preview 去掉双引号
- java RandomAccessFile 用法
- 《口袋仙侠》客户端编辑工具完整源码下载
- FFmpeg - 编解码、流文件、解复用、容器、包、帧 - iOS开发
- 李老师骂自己博士生的话
- IOS开发——获取本地音频文件(属性/信息)
- discuz updatemembercount,notification_add 解析
- slave机器重复尝试连接ResourceManager
- 报表练习题:销售订单打印的相关说明
- php0114331
- U盘文件损坏怎么办还能恢复吗
- vc++下给自己的程序添加背景音乐
- 怎样解决Windows Update当前无法检查更新的问题
- Hadoop的基准测试工具使用