MPMediaPickerController 选取本地音频--备用

  1. MPMediaPickerController 与 UIImagePickerController 类似,允许用户从音乐库中选取音乐、播客、音频书。  

一、创建

 

 

  1. MPMediaPickerController *mpc = [[MPMediaPickerControlleralloc]initWithMediaTypes:MPMediaTypeMusic];  
  2.    mpc.delegate = self;//委托  
  3.    mpc.prompt =@"Please select a music";//提示文字  
  4.    mpc.allowsPickingMultipleItems=NO;//是否允许一次选择多个  

上述代码创建了一个 MPMediaPickerController 并设置了相关属性。其中初始化的时候有一个参数是媒体类型,媒体类型可以是下面这些值:

 
  1. enum {  
  2.     // audio  
  3.     MPMediaTypeMusic        = 1 << 0,  
  4.     MPMediaTypePodcast      = 1 << 1,  
  5.     MPMediaTypeAudioBook    = 1 << 2,  
  6.     MPMediaTypeAudioITunesU = 1 << 3, // available in iOS 5.0  
  7.     MPMediaTypeAnyAudio     = 0x00ff,  
  8.       
  9.     // video (available in iOS 5.0)  
  10.     MPMediaTypeMovie        = 1 << 8,  
  11.     MPMediaTypeTVShow       = 1 << 9,  
  12.     MPMediaTypeVideoPodcast = 1 << 10,  
  13.     MPMediaTypeMusicVideo   = 1 << 11,  
  14.     MPMediaTypeVideoITunesU = 1 << 12,  
  15.     MPMediaTypeAnyVideo     = 0xff00,  
  16.       
  17.     MPMediaTypeAny          = ~0  
  18. };  
  19. typedef NSInteger MPMediaType;  

二、委托函数

 
  1. - (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection{  
  2.     /*insert your code*/  
  3.     for (  MPMediaItem* itemin [mediaItemCollection items]) {  
  4.     }  
  5.     [selfdismissModalViewControllerAnimated:YES];  
  6.     [mediaPicker release];  
  7. }  

在上面这个函数里你可以处理所选取的内容。下面这个函数负责处理选中后取消的动作:

 
  1. -(void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker{  
  2.     /*insert your code*/  
  3.     [selfdismissModalViewControllerAnimated:YES];  
  4.     [mediaPicker release];  
  5. }  

三、显示

你可以在任何需要显示的时候调用下面代码:

 
  1. [selfpresentModalViewController:mpc animated:YES];  

 

四、关键点

看完上面的代码你可能明白了,但是又感觉没明白。为什么呢?看第一个回调函数就知道了,回调函数传参好像不认识。 MPMediaItemCollection 的对象的items 就是用户选择项的集合。每一项都是MPMediaItem 类的成员,并可以查询其属性值。属性太多,我就不一一列出了,你去看MPMediaItem类的头文件或者官方文档就明白了。

posted on 2016-02-24 23:19  &#127774;Bob  阅读(249)  评论(0编辑  收藏  举报

导航