从 MPMediaItemCollection 获取歌曲名称

Get song title from MPMediaItemCollection

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

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

下一步,在我的 table 视图中,我试图获取要放入 cell.textLabel 中的每个媒体项目的名称。像这样:

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

但我没有得到 MPMediaItems,我得到了 collection 个项目。那么如何从 MPMediaItemCollections 数组中获取 MPMediaItem 并获取标题呢?

如果您想使用媒体项的集合分组并获取有关其中的曲目组的信息,您可以通过 MPMediaItemCollection 的 representativeItem [=18] 访问代表集合内容的 MPMediaItem =].

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

旁注,如果您更愿意处理一组 MPMediaItems,您可能需要考虑使用 MPMediaQuery 的 items 属性 而不是它的 collections 属性 .