最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS獲取本地音頻文件(屬性/信息)

 更新時(shí)間:2018年07月22日 09:27:31   作者:Leemin_ios  
這篇文章主要為大家詳細(xì)介紹了iOS獲取本地音頻文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了iOS獲取本地音頻文件的具體代碼,供大家參考,具體內(nèi)容如下

獲取本地音頻文件地址:

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 ];//隨便取一個(gè),說(shuō)明 
  //文件管理,取得文件屬性 
 
  NSFileManager *fm = [NSFileManager defaultManager]; 
  NSDictionary *dictAtt = [fm attributesOfItemAtPath:filePath error:nil]; 
   
 
  //取得音頻數(shù)據(jù)   
 
  NSURL *fileURL=[NSURL fileURLWithPath:filePath]; 
  AVURLAsset *mp3Asset=[AVURLAsset URLAssetWithURL:fileURL options:nil]; 
  
   
  NSString *singer;//歌手 
  NSString *song;//歌曲名 
 
  UIImage *image;//圖片  
 
  NSString *albumName;//專(zhuān)輯名 
  NSString *fileSize;//文件大小 
  NSString *voiceStyle;//音質(zhì)類(lèi)型 
  NSString *fileStyle;//文件類(lèi)型 
  NSString *creatDate;//創(chuàng)建日期 
  NSString *savePath; //存儲(chǔ)路徑 
   
  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;//歌手 
      } 
      //      專(zhuān)輯名稱(chēng) 
      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 = @"標(biāo)準(zhǔn)"; 
  }else if(tempFlo > 10){ 
    voiceStyle = @"高清"; 
  } 
   
   
  NSArray *tempArr = [[NSArray alloc] initWithObjects:@"歌手:",@"歌曲名稱(chēng):",@"專(zhuān)輯名稱(chēng):",@"文件大小:",@"音質(zhì)類(lèi)型:",@"文件格式:",@"創(chuàng)建日期:",@"保存路徑:", 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)]; 
     
  } 

   
} 

附圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IOS開(kāi)發(fā)之@property的詳細(xì)介紹

    IOS開(kāi)發(fā)之@property的詳細(xì)介紹

    這篇文章主要介紹了IOS開(kāi)發(fā)之@property的詳細(xì)介紹的相關(guān)資料,希望通過(guò)本文能幫助到大家,大家理解并會(huì)使用,需要的朋友可以參考下
    2017-09-09
  • 詳解iOS中集成ijkplayer視頻直播框架

    詳解iOS中集成ijkplayer視頻直播框架

    ijkplayer 是一款做視頻直播的框架, 基于ffmpeg, 支持Android和iOS,本文將詳細(xì)的講一下在iOS中如何集成ijkplayer, 即便以前從沒(méi)有接觸過(guò),按著下面做也可以集成成功!下面跟著小編一起來(lái)看下吧
    2016-12-12
  • iOS移動(dòng)端軟鍵盤(pán)彈起空白和滾動(dòng)穿透問(wèn)題解決方案

    iOS移動(dòng)端軟鍵盤(pán)彈起空白和滾動(dòng)穿透問(wèn)題解決方案

    這篇文章主要為大家介紹了iOS移動(dòng)端軟鍵盤(pán)彈起空白和滾動(dòng)穿透問(wèn)題解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • IOS 開(kāi)發(fā)之PickerView自定義視圖的實(shí)例詳解

    IOS 開(kāi)發(fā)之PickerView自定義視圖的實(shí)例詳解

    這篇文章主要介紹了IOS 開(kāi)發(fā)之PickerView自定義視圖的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下
    2017-08-08
  • IOS 開(kāi)發(fā)之swift中手勢(shì)的實(shí)例詳解

    IOS 開(kāi)發(fā)之swift中手勢(shì)的實(shí)例詳解

    這篇文章主要介紹了IOS 開(kāi)發(fā)之swift中手勢(shì)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能掌握IOS手勢(shì)的使用方法,需要的朋友可以參考下
    2017-09-09
  • iOS實(shí)現(xiàn)自動(dòng)循環(huán)播放的banner實(shí)例詳解

    iOS實(shí)現(xiàn)自動(dòng)循環(huán)播放的banner實(shí)例詳解

    輪播視圖通常也叫Banner,90%以上App都會(huì)用到的一個(gè)控件,網(wǎng)上有很多開(kāi)源代碼,下面這篇文章主要給大家介紹了關(guān)于利用iOS如何實(shí)現(xiàn)自動(dòng)循環(huán)播放的banner的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • swift3.0網(wǎng)絡(luò)圖片緩存原理簡(jiǎn)析

    swift3.0網(wǎng)絡(luò)圖片緩存原理簡(jiǎn)析

    這篇文章主要為大家簡(jiǎn)析了swift3.0網(wǎng)絡(luò)圖片緩存原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • iOS使用UIBezierPath實(shí)現(xiàn)ProgressView

    iOS使用UIBezierPath實(shí)現(xiàn)ProgressView

    這篇文章主要為大家詳細(xì)介紹了iOS使用UIBezierPath實(shí)現(xiàn)ProgressView,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Flutter之PageView頁(yè)面緩存與KeepAlive

    Flutter之PageView頁(yè)面緩存與KeepAlive

    這篇文章主要為大家介紹了Flutter之PageView頁(yè)面緩存與KeepAlive示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • iOS中valueForKeyPath的常用方法法示例

    iOS中valueForKeyPath的常用方法法示例

    這篇文章主要給大家介紹了關(guān)于iOS中valueForKeyPath的常用方法法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07

最新評(píng)論

临潭县| 静乐县| 宣城市| 霍州市| 嘉荫县| 大冶市| 安陆市| 垫江县| 岚皋县| 宁夏| 泰来县| 姜堰市| 建阳市| 普安县| 日喀则市| 泗阳县| 博野县| 沛县| 临汾市| 延川县| 乌鲁木齐县| 萍乡市| 东台市| 旅游| 手机| 收藏| 竹北市| 八宿县| 上饶市| 达拉特旗| 临漳县| 苍溪县| 福州市| 施甸县| 会昌县| 高阳县| 德清县| 彭州市| 新乐市| 阜阳市| 榕江县|