从 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,如何获取播放结束时的事件