iOS 로 컬 오디 오 파일 가 져 오기(속성/정보)

본 논문 의 사례 는 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 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 nil]; 
  NSArray *tempArrInfo = [[NSArray alloc] initWithObjects:singer,song,albumName,fileSize,voiceStyle,fileStyle,creatDate,savePath, nil 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)]; 
     
  } 

   
} 
부도:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기