ios - 如何玩MPMediaItemCollection?

时间:2015-06-05 09:32:47

标签: ios iphone swift audio mpmusicplayercontroller

所以,我已经在NSUserDefaults中存储了很少的 mpmediaitemcollection 。我已经在UICollectionView上检索它了。

这是我的代码:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

    self.performSegueWithIdentifier("toList", sender: self)

    User.mdci = decodedPlaylistData[indexPath.row] as? MPMediaItemCollection

    getSongListInfo((decodedPlaylistData[indexPath.row] as? MPMediaItemCollection)!)

    MPMusicPlayerController().setQueueWithItemCollection((decodedPlaylistData[indexPath.row] as? MPMediaItemCollection)!)
    MPMusicPlayerController().nowPlayingItem = (decodedPlaylistData[indexPath.row] as? MPMediaItemCollection)!.items[0] as! MPMediaItem

    MPMusicPlayerController().play()

}

这里是decodePlaylisData数组:

(
"<MPMediaItemCollection: 0x165c5d00>",
"<MPMediaItemCollection: 0x165c6c30>",
"<MPMediaItemCollection: 0x165c7390>",
"<MPMediaItemCollection: 0x165c7c60>"
)

上面的代码应该根据 indexPath.row

播放每个mediaitemcollection

getSongListInfo是一个函数,可以获取图像,标题,专辑,艺术家等所有信息,并将其发送给结构体。它在另一个vc上的工作方式如下:

enter image description here

  

我可以从MPMediaItemCollection获取歌曲信息,但我无法播放MPMediaItemCollection中的歌曲

如何解决此问题?

  

注意:它实际上播放了MPMediaItemCollection,但是当我点击另一个UICollectionViewCell时它没有播放

1 个答案:

答案 0 :(得分:0)

此代码创建三个独立的音乐播放器控制器。制作一个并将其存储在变量中,然后将消息发送给它

MPMusicPlayerController().setQueueWithItemCollection((decodedPlaylistData[indexPath.row] as? MPMediaItemCollection)!)

MPMusicPlayerController().nowPlayingItem = (decodedPlaylistData[indexPath.row] as? MPMediaItemCollection)!.items[0] as! MPMediaItem

MPMusicPlayerController().play()