从 MPMediaItemCollection 获取歌曲名称

Posted

技术标签:

【中文标题】从 MPMediaItemCollection 获取歌曲名称【英文标题】:Get song title from MPMediaItemCollection 【发布时间】:2015-02-19 14:32:36 【问题描述】:

我正在尝试将我的旧播放器从 Objective-C 重写为 Swift(通过记忆)并且遇到了麻烦。我有很多这样的歌曲

let query = MPMediaQuery.songsQuery()
query.groupingType = MPMediaGrouping.Title
songsArray = query.collections

接下来在我的表格视图中,我试图获取每个媒体项的名称以放入cell.textLabel。像这样:

var mediaItem = songsArray.objectAtIndex(indexPath.row)
var title = mediaItem.valueForProperty(MPMediaItemPropertyTitle)

但我没有得到 MPMediaItems,我得到的是项目集合。那么如何从 MPMediaItemCollections 数组中获取 MPMediaItem 并获取标题?

【问题讨论】:

【参考方案1】:

如果您想使用媒体项的集合分组并获取有关其中轨道组的信息,您可以通过 MPMediaItemCollection 的representativeItem 属性访问代表集合内容的 MPMediaItem。

let collection = songsArray.objectAtIndex(indexPath.row) as! MPMediaItemCollection
let representativeItem = collection.representativeItem
let title = representativeItem.title

旁注,如果您希望处理 MPMediaItem 数组,您可能需要考虑使用 MPMediaQuery 的 items 属性而不是其 collections 属性。

【讨论】:

我需要一种方法来对我的歌曲进行排序)所以我使用了收藏)如果你知道另一种方法 - 请告诉我

以上是关于从 MPMediaItemCollection 获取歌曲名称的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MPMusicPlayerController 从特定索引播放 MPMediaItemCollection?

在 AVPlayer [Swift] 中播放 MPMediaItemCollection 中的项目

跨会话持久保存 iPod 播放列表 (MPMediaItemCollection) 的最佳实践

ios - 如何播放 MPMediaItemCollection?

如何将 MPMediaItem 添加到 MPMediaItemCollection

使用 MPMusicPlayerController 播放 MPMediaItemCollection,如何获取播放结束时的事件