我正在尝试将歌曲的歌曲标题,作者和播放的秒数分配给一组变量。但是我无法从歌曲中提取任何信息,这是最好的方法,因为目前我的方式崩溃了。
func presentPicker (sender:AnyObject) {
//I have all of this within an IBAction if that matters, I am new to programming in general so sorry if theres any stupid mistakes
let mediaPicker = MPMediaPickerController(mediaTypes: .Music)
mediaPicker.delegate = self
mediaPicker.allowsPickingMultipleItems = false
presentViewController(mediaPicker, animated: true, completion: {println(MPMediaItemCollection())})
}
答案 0 :(得分:1)
您不应该使用completion
的{{1}}参数。控制器成功呈现时完成运行,但您想在完成解除后抓取该歌曲。您需要在类中实现此委托方法:
presentViewController:
当用户选择了一首歌曲时,系统会调用该方法,因为您将func mediaPicker(mediaPicker: MPMediaPickerController!,
didPickMediaItems mediaItemCollection: MPMediaItemCollection!) {
println(mediaItemCollection)
}
设置为delegate
。您可能还想实现这个,以确定他们是否取消了选择器:
self