MPMediaPickerController 和 MPMediaitemPropertyAssetUrl
Posted
技术标签:
【中文标题】MPMediaPickerController 和 MPMediaitemPropertyAssetUrl【英文标题】:MPMediaPickerController and MPMediaitemPropertyAssetUrl 【发布时间】:2016-02-04 17:15:11 【问题描述】:我正在寻找一种使用 MPMediaPickerController 来允许用户选择歌曲的方法。我希望用户能够将歌曲文件路径分配给一个按钮,以便每次他/她按下按钮时都会播放该特定歌曲。我不想将文件复制到我的应用程序,只想要用户音乐库中的快捷方式。在我看来, MPMediaItemPropertyAssetUrl 是要走的路。如果我是正确的,设置媒体选择器的代码如下所示:
let mediaPicker = MPMediaPickerController(mediaTypes: .music)
mediaPicker.delegate = self
mediaPicker.prompt = "Select song (Icloud songs must be downloaded to use)"
mediaPicker.allowsPickingMultipleItems = false
mediaPicker.showsCloudItems = false
presentViewController(mediaPicker, animated: true, completion: )
我的困惑在于如何添加将返回用户资产 url 的代码,以便他们可以将其添加到按钮中进行播放?
【问题讨论】:
【参考方案1】:您需要调用委托函数:
func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection)
然后您可以通过 MPMediaItemCollection 访问媒体项目(无论用户选择什么):
for thisItem in mediaItemCollection.items as [MPMediaItem]
在上一行末尾的那个块中,您可以访问所选项目的 URL,如下所示:
let itemUrl = thisItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL
然后从播放器的 URL 播放
【讨论】:
以上是关于MPMediaPickerController 和 MPMediaitemPropertyAssetUrl的主要内容,如果未能解决你的问题,请参考以下文章
MPMediaPickerController - 错误选择后取消选择
从 MPMediaPickerController 导出视频 - 没有音频
iPad 上的 MPMediaPickerController 方向
iOS - MPMediaPickerController - 改变 barStyle