ios - 如何播放 MPMediaItemCollection?

Posted

技术标签:

【中文标题】ios - 如何播放 MPMediaItemCollection?【英文标题】:ios - How to play MPMediaItemCollection? 【发布时间】:2015-06-05 09:32:46 【问题描述】:

所以,我已经在 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()


这里是解码的PlaylisData 数组:

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

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

播放每个 mediaitemcollection

getSongListInfo 是一个获取所有信息(例如图像、标题、专辑、艺术家)的函数,我将其发送到结构。它在另一个 vc 上的工作方式如下:

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

我该如何解决这个问题?

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

【问题讨论】:

【参考方案1】:

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

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

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

MPMusicPlayerController().play()

【讨论】:

谢谢,你的答案就是解决方案:D

以上是关于ios - 如何播放 MPMediaItemCollection?的主要内容,如果未能解决你的问题,请参考以下文章

IOS如何在后台播放音乐声音并暂停当前播放的音乐应用程序

如何在 iOS 后台播放音频?

如何在 iOS 视频播放器中播放 webm 文件

如何在ios中播放视频播放器

如何在 iOS 中暂停后台播放器

iOS如何停止在后台播放音频?