MPMediaPickerController选择系统音乐
一、介绍
- 在播放本地音乐时,还需要为用户提供选择音乐文件的功能,一般都会列出一个本地音乐列表。 
- iOS系统为此提供了MPMediaPickerController - [多媒体选择器]。MPMediaPickerController能展示一个默认的视图,供用户选择音乐文件。
- MPMediaPickerController常用属性:
| 属性声明 | 功能描述 | 
|---|---|
| @property (nonatomic, readonly) MPMediaType mediaTypes; | 设置、获取多媒体文件的类型 | 
| @property (nonatomic, weak, nullable) id | 设置、获取代理对象 | 
| @property (nonatomic) BOOL allowsPickingMultipleItems; | 设置、获取是否允许选择多项,默认为NO | 
| @property (nonatomic) BOOL showsCloudItems MP_API(ios(6.0)); | 设置、获取是否显示iCloud上的多媒体文件,默认是YES | 
| @property (nonatomic, copy, nullable) NSString *prompt; | 设置、获取在选择控制器上方显示的提示信息 | 
- mediaTypes属性,负责设置和获取多媒体文件类型:
| 1 | typedef NS_OPTIONS(NSUInteger, MPMediaType) { | 
二、流程
- 导入头文件
| 1 | 
 | 
- 创建控制器
| 1 | 
 | 
- 展示控制器
//以modal的方式显示视图即可  
[self presentViewController:picker animated:YES completion:nil];   
- 获取用户选择的音乐文件
用户在选择完要播放的音乐文件后,需要用MPMediaPickerController类的代理方法来获取音乐文件。
它的代理必须遵守MPMediaPickerControllerDelegate协议 
//当用户选择了某个音乐文件后调用
//需要注意的是,在这个方法里要将控制器的视图注销,回到当前之前的视图
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection;
//用户取消选择之后调用
- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker;  
 
		