0

我正在尝试将我的旧播放器从 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 并获取标题?

4

1 回答 1

3

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

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

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

于 2015-02-19T14:54:36.323 回答