Обнаружение папок списков воспроизведения iTunes на устройстве

Через iTunes вы можете создавать папки списков воспроизведения с произвольной глубиной вложенности. Когда вы копируете эти папки плейлистов на свое устройство iOS, iTunes определяет, что это папки, и позволяет вам перейти к точке, где вы в конечном итоге получите песни. Есть идеи, как они это делают? Я пытался понять это несколько дней.

Когда я запрашиваю конкретный persistentID известной папки, единственное, что я вижу в нем, что отличается от списка воспроизведения, содержащего песни:

  • playlist.mediaTypes = 4359 (это Музыка | Подкаст | Аудиокнига | Фильм | VideoiTunes), тогда как обычный список воспроизведения не будет смешивать типы аудио и типы видео.
  • значение свойства MPMediaPlaylistPropertyPlaylistAttributes содержит 2 (MPMediaPlaylistAttributeSmart), тогда как обычный список воспроизведения содержит 0
  • количество предметов будет равно общему количеству предметов на устройстве

Но это все! Я не вижу способа добраться до подпапок. Или, когда я запрашиваю список воспроизведения или подпапку, содержащуюся в папке, я не вижу способа привязать ее к родительской.

Apple делает это в iTunes, так что способ должен быть. Они используют какой-то частный API?


person BigSprocket    schedule 03.07.2012    source источник


Ответы (1)


Существуют следующие недокументированные свойства, которые могут дать вам то, что вы ищете, используя метод MPMediaPlaylist valueForProperty: @"isFolder" и @"parentPersistentID".

Обратите внимание, что они не задокументированы и не отображаются ни в каких файлах заголовков, поэтому их использование может рассматриваться как использование «частного API» в соответствии с правилами отправки приложений Apple.

Я отправил в Apple отчет об ошибке с просьбой сделать их доступными в файлах заголовков, а также с просьбой уточнить, считаются ли они частью частного API.

person John Muir    schedule 11.09.2012
comment
В iOS 8 GM я заметил, что папки плейлистов просто больше не появляются по запросу. Я попытался создать предикат, запрашивающий точный постоянный идентификатор списка воспроизведения, но все равно не повезло. Есть идеи, как получить папки списков воспроизведения на iOS 8? - person beebcon; 10.09.2014
comment
Прошло почти 9 лет, кажется, что знак parentPersistentID до сих пор не опубликован ... знак. Кстати, есть какой-нибудь ответ на ваш отчет об ошибке? - person Kjuly; 15.03.2021