如何解释MPMediaItemCollection代码

时间:2015-05-30 06:06:36

标签: ios swift

当我选择在我的应用程序中打印出MPMediaItemCollection时,我只会收到诸如0x17eb5d30之类的代码。有人知道如何从这些随机字母和数字中获取数据。我希望能在几秒钟内检索歌曲的标题以及歌曲的长度。

我的代码在这里

@IBAction func pickSong(sender: AnyObject) {


    self.presentPicker(sender)


    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        var DestView: playMusicViewController = segue.destinationViewController as! playMusicViewController
        DestView.selectedSong = MPMediaItemCollection()

    }


}


func presentPicker (sender:AnyObject) {

    let mediaPicker = MPMediaPickerController(mediaTypes: .Music)
    mediaPicker.delegate = self
    mediaPicker.allowsPickingMultipleItems = false
    presentViewController(mediaPicker, animated: true, completion: {})

}

也是扩展视图控制器

extension ViewController : MPMediaPickerControllerDelegate {
// must implement these, as there is no automatic dismissal

    func mediaPicker(mediaPicker: MPMediaPickerController!, didPickMediaItems mediaItemCollection: MPMediaItemCollection!) {
        let player = MPMusicPlayerController.applicationMusicPlayer()
        player.setQueueWithItemCollection(mediaItemCollection)
        player.play()
        println(mediaItemCollection)
        self.dismissViewControllerAnimated(true, completion: nil)

    }

    func mediaPickerDidCancel(mediaPicker: MPMediaPickerController!) {
        self.dismissViewControllerAnimated(true, completion: nil)
    }

}

1 个答案:

答案 0 :(得分:1)

如果您想要访问所需的音乐详细信息,那么您看到的数字和字母是指向内存中地址的指针(对我们来说通常不是很有用),这些音乐需要访问您为拾取器收到的对象的属性。以下示例显示如何检索所选音乐的标题:

func mediaPicker(mediaPicker: MPMediaPickerController!, didPickMediaItems mediaItemCollection: MPMediaItemCollection!) {
    let player = MPMusicPlayerController.applicationMusicPlayer()
    player.setQueueWithItemCollection(mediaItemCollection)
    player.play()
    let item = mediaItemCollection.representativeItem
    let title = item.title
    println(title)
    self.dismissViewControllerAnimated(true, completion: nil)  
}

我希望能帮到你!