假设我有一个具有这种播放列表结构的 iOS 音乐库:
A Folder
|
---> A Playlist
|
---> Song A
我运行以下代码:
import MediaPlayer
let playlists = MPMediaQuery.playlists().collections! as! [MPMediaPlaylist]
for playlist in playlists {
let firstItemName = playlist.items.first?.title ?? "none"
print("playlist: \(playlist.name!), first item: \"\(firstItemName)\"")
}
我得到这个控制台输出:
播放列表:播放列表,第一项:“歌曲 A”
播放列表:A 文件夹,第一项:“歌曲 A”
我查看了所有 MediaPlayer 框架文档,但找不到任何方法来通过 API 发现播放列表和文件夹之间的父/子关系(甚至无法判断一个集合包含其他集合)。我只想在用户浏览 A 文件夹后才显示 A 播放列表,而不是将它们显示为兄弟姐妹(或者甚至可能完全过滤掉 A 文件夹。
此外,文件夹和播放列表在运行时都具有相同的类:MPConcreteMediaPlaylist
.