Using the Media Item Picker
使用媒体项选择器
媒体项选择器是封装好的让用户从设备iPod库中选择媒体项的视图控制器。使用选择器非常简单:
1.指定一个控制器对象作为选择器的代理。
2.从控制器调用选择器。
3.当用户表示他们已经完成,这个代理接收选择的媒体项集合并且移走选择器。
Setting Up a Media Item Picker Delegate
设置媒体项选择器代理
想要设置控制器对象作为媒体项选择器的代理,首先要添加一个协议的名字到控制器的头文件的接口申明处,如下所示:
@interface myController : UIViewController <MPMediaPickerControllerDelegate> {
// interface declaration
}
接下来,实现两个来自协议的代理方法。第一个方法,如代码清单3-1所示,响应用户选择的一些媒体项。它移除选择器且调用控制器的播放队列的更新方法。
代码清单 3-1 响应一个新的从选择器获得的媒体项集合
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker
didPickMediaItems: (MPMediaItemCollection *) collection {
[self dismissModalViewControllerAnimated: YES];
[self updatePlayerQueueWithMediaCollection: collection];
}
如何更新播放队列详见 Listing 2-5.
第二个选择器的代理方法处理用户点击完成但没有选择任何项目的情况。代码清单3-2是这种方法的基本实现。
代码清单 3-2 响应如果用户取消选择器
- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker {
[self dismissModalViewControllerAnimated: YES];
}
Displaying a Media Item Picker
显示一个媒体项选择器
代码清单3-3显示了如何配置和显示一个媒体项选择器——包括建立作为选择器代理的控制器对象。
代码清单 3-3 显示一个媒体项选择器
MPMediaPickerController *picker =
[[MPMediaPickerController alloc]
initWithMediaTypes: MPMediaTypeAnyAudio]; // 1
[picker setDelegate: self]; // 2
[picker setAllowsPickingMultipleItems: YES]; // 3
picker.prompt =
NSLocalizedString (@"Add songs to play",
"Prompt in media item picker");
[myController presentModalViewController: picker animated: YES]; // 4
[picker release];
代码实现了以下功能:
1.Creates a media item picker. The parameter indicates the sort of media items to display.创建一个媒体项选择器。参数表示媒体项的显示排序。 详细的选项参看 Media Item Type Flags 枚举类型。
2.将代理设置为你的控制器对象。
3.指定用户可以选择多个项。默认行为是不允许多选。
4.Displays the picker. 显示选择器。myController对象保留它所以你之后一定要释放它。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。