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;