iOS Music Library: How to tell if a given Playlist is a folder

225 views Asked by At

Say I have an iOS music library with this playlist structure:

A Folder
|
---> A Playlist
     |
     ---> Song A

I run the following code:

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)\"")
}

and I get this console output:

playlist: A Playlist, first item: "Song A"

playlist: A Folder, first item: "Song A"

I've looked through all of the MediaPlayer framework documentation, and can't find any way to discover the parent/child relationship between the playlist and the folder through the API (or even to tell that a collection contains other collections). I'd like to present A Playlist only after a user has browsed through A Folder, rather than showing them as siblings (or maybe even filter out A Folder altogether.

Also, the folder and the playlist both have the same class at runtime: MPConcreteMediaPlaylist.

0

There are 0 answers