本文实例为大家分享了iOS获取本地音频文件的具体代码,供大家参考,具体内容如下

获取本地音频文件地址:

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 add :filePath];
  }

解析音频文件属性:

-(void)mDefineUpControl{ 
  NSString *filePath = [self.wMp3URL  AtIndex: 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 available dataFormats]) { 
    for (AV dataItem * dataItem in [mp3Asset  dataForFormat:format]) { 
      if([ dataItem.commonKey isEqualToString:@" "]){ 
        song = (NSString *) dataItem.value;//歌曲名 
       
      }else if ([ dataItem.commonKey isEqualToString:@"artist"]){ 
        singer = (NSString *) dataItem.value;//歌手 
      } 
      //      专辑名称 
      else if ([ dataItem.commonKey isEqualToString:@"albumName"]) 
      { 
        albumName = (NSString *) dataItem.value; 
      }else if ([ dataItem.commonKey isEqualToString:@"artwork"]) { 
        NSDictionary *dict=(NSDictionary *) dataItem.value; 
        NSData *data=[dict  ForKey:@"data"]; 
        image=[UIImage imageWithData:data];//图片 
      } 
     
    } 
  } 
  savePath = filePath; 
  float tempFlo = [[dictAtt  ForKey:@"NSFileSize"] floatValue]/(1024*1024); 
  fileSize = [NSString stringWithFormat:@"%.2fMB",[[dictAtt  ForKey:@"NSFileSize"] floatValue]/(1024*1024)]; 
  NSString *tempStrr = [NSString stringWithFormat:@"%@", [dictAtt  ForKey:@"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] initWith s:@"歌手:",@"歌曲名称:",@"专辑名称:",@"文件大小:",@"音质类型:",@"文件格式:",@"创建日期:",@"保存路径:", nil nil]; 
  NSArray *tempArrInfo = [[NSArray alloc] initWith s:singer,song,albumName,fileSize,voiceStyle,fileStyle,creatDate,savePath, nil nil]; 
  for(int i = 0;i < [tempArr count]; i ++){ 
    NSString *str  = [tempArr  AtIndex:i]; 
    UILabel * Lab = [[UILabel alloc] initWith :CGRectMake(5, 5+i*30, 16*[str  length], 25)]; 
    [ Lab setText:str ]; 
    [ Lab setTextColor:[WASharedFontStyle mGetSharedFontColor]]; 
    [ Lab setFont:[UIFont systemFontOfSize:16]]; 
    [self.wInfoSV addSubview: Lab]; 
     
    NSString *strInfo = [tempArrInfo  AtIndex:i]; 
    UILabel *infoLab = [[UILabel alloc] initWith :CGRectMake( Lab. .origin.x+ Lab.bounds.size.width+5, 5+i*30, self.view.bounds.size.width-( Lab. .origin.x+ Lab.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 set :CGRectMake( Lab. .origin.x+ Lab.bounds.size.width+5, 5+i*30, self.view.bounds.size.width-( Lab. .origin.x+ Lab.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)]; 
     
  } 

   
} 

附图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

收藏 打印