本节书摘来自异步社区《iOS组件与框架——iOS SDK高级特性剖析》一书中的第6章,第6.3节媒体选择器,作者 【美】Kyle Richter , Joe Keeley,更多章节内容可以访问云栖社区“异步社区”公众号查看
6.3 媒体选择器
iOS组件与框架——iOS SDK高级特性剖析
要让用户能够选择要欣赏的歌曲,最简单的方式是让他能够访问MPMediaPickerController,如图6.2所示。MPMediaPickerController让用户能够浏览艺术家、歌曲、播放列表和专辑,以指定要播放的歌曲。要使用MPMediaPickerController,必须遵守委托协议MPMediaPicker ControllerDelegate,它定义了两个必须实现的方法。第一个是mediaPicker:didPickMediaItems:,在用户选择了要欣赏的歌曲时被调用。将通过一个MPMediaItemCollection对象返回选定的歌曲,MPMusicPlayerController可直接将这个对象作为参数来调用setQueueWith ItemCollection:。为MPMusicPlayerController设置新队列后,就可开始播放选定歌曲了。用户选择歌曲后,MPMediaPickerController不会自动关闭,您必须显式地调用dismissViewControllerAnimated: completion:来关闭它。
如果用户在MPMediaPickerController中取消了选择,将调用委托方法mediaPickerDidCancel:。在这个方法中,您必须关闭MPMediaPickerController。
实现委托方法后,便可创建MPMediaPickerController实例了。分配和初始化MPMediaPicker Controller时,必须指定一个表示媒体类型的参数。表6.2列出了这个参数的所有可能取值。请注意,同一个媒体项可能归属于多种媒体类型。可给MPMediaPickerController实例指定一些属性,如支持多选及显示提示,如图6.2所示。还有一个Boolean属性,它指定是否显示iCloud媒体项,默认为YES。
使用MPMediaPickerController让用户选择要播放的歌曲时,这些就是需要完成的所有步骤。然而,在很多情况下,都必须提供自定义的用户界面或在没有界面的情况下选择歌曲,这将在下一节介绍。