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

如何更改 MPMediaPickerController 的语言设置。

在没有 MPMediaPickerController 的情况下访问用户 iTunes 库