0
爲了回答這個問題,我在一本書中遇到了這個問題。如何從mediaPickerController獲取mediaItemCollection以在AVPlayer上播放?
「MPMediaItem,然而,有一個MPMediaItemPropertyAssetURL鍵(或assetURL屬性),它的值是一個URL。這讓你到磁盤上的音樂文件的引用,...已經獲得了MPMediaItem的資產URL,你可以使用初始化AVAudioPlayer,AVPlayer或AVAsset的URL。「
所以我試圖使用mediaPickerController來獲取像這樣的資產url。
func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
guard let mediaItem = mediaItemCollection.items.first else {
NSLog("No item selected.")
return
}
var songURL = mediaItem.valueForProperty(MPMediaItemPropertyAssetURL) as! NSURL
print(songURL)
self.dismissViewControllerAnimated(true, completion: nil)
}
在這本書中它給這個作爲一個例子:
let arr = // array of MPMediaItem
let items = arr.map {
let url = $0.assetURL!
let asset = AVAsset(URL:url)
return AVPlayerItem(asset: asset)
}
self.qp = AVQueuePlayer(items:items)
self.qp.play()
林不知道如何讓mediaItemCollection到ARR變量。 songURL和MediaItemCollection的使用在picker的mediaPicker函數中。我無法在其功能之外訪問它。我如何得到這個工作?