您的位置:首页 > 产品设计 > 产品经理

MPMediaPickerController 选取本地音频

2015-11-30 22:57 393 查看
[java] view
plaincopyprint?

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

一、创建

[java] view
plaincopyprint?

MPMediaPickerController *mpc = [[MPMediaPickerControlleralloc]initWithMediaTypes:MPMediaTypeMusic];  

   mpc.delegate = self;//委托  

   mpc.prompt =@"Please select a music";//提示文字  

   mpc.allowsPickingMultipleItems=NO;//是否允许一次选择多个  

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

[java] view
plaincopyprint?

enum {  

    // audio  

    MPMediaTypeMusic        = 1 << 0,  

    MPMediaTypePodcast      = 1 << 1,  

    MPMediaTypeAudioBook    = 1 << 2,  

    MPMediaTypeAudioITunesU = 1 << 3, // available in iOS 5.0  

    MPMediaTypeAnyAudio     = 0x00ff,  

      

    // video (available in iOS 5.0)  

    MPMediaTypeMovie        = 1 << 8,  

    MPMediaTypeTVShow       = 1 << 9,  

    MPMediaTypeVideoPodcast = 1 << 10,  

    MPMediaTypeMusicVideo   = 1 << 11,  

    MPMediaTypeVideoITunesU = 1 << 12,  

    MPMediaTypeAnyVideo     = 0xff00,  

      

    MPMediaTypeAny          = ~0  

};  

typedef NSInteger MPMediaType;  

二、委托函数

[java] view
plaincopyprint?

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection{  

    /*insert your code*/  

    for (  MPMediaItem* itemin [mediaItemCollection items]) {  

    }  

    [selfdismissModalViewControllerAnimated:YES];  

    [mediaPicker release];  

}  

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

[java] view
plaincopyprint?

-(void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker{  

    /*insert your code*/  

    [selfdismissModalViewControllerAnimated:YES];  

    [mediaPicker release];  

}  

三、显示

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

[java] view
plaincopyprint?

[selfpresentModalViewController:mpc animated:YES];  

四、关键点

看完上面的代码你可能明白了,但是又感觉没明白。为什么呢?看第一个回调函数就知道了,回调函数传参好像不认识。 MPMediaItemCollection 的对象的items 就是用户选择项的集合。每一项都是MPMediaItem 类的成员,并可以查询其属性值。属性太多,我就不一一列出了,你去看MPMediaItem类的头文件或者官方文档就明白了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: