MPMediaPickerController

MPMediaPickerController

我正在寻找一种使用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: {})


我的困惑在于如何添加代码以返回用户资产网址,以便他们可以将其添加到按钮上进行播放?

最佳答案

您将需要调用委托函数:

func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection)

然后,您可以通过MPMediaItemCollection访问媒体项(无论用户选择了什么):

for thisItem in mediaItemCollection.items as [MPMediaItem] {}

在上一行末尾的那个块中,您可以这样访问所选项目的URL:

let itemUrl = thisItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL


然后从播放器的URL播放

关于ios - MPMediaPickerController和MPMediaitemPropertyAssetUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35207379/

10-11 00:47