4

iTunes を使用して、任意の深さにネストされたプレイリスト フォルダを作成できます。これらのプレイリスト フォルダを iOS デバイスにコピーすると、iTunes はそれらがフォルダであることを検出し、最終的に曲を取得するポイントまで掘り下げることができます。彼らがそれをどのように行うか考えていますか?? 私は何日もこれを理解しようとしてきました。

既知のフォルダーの特定の persistentID を照会すると、曲を含むプレイリストとは異なる唯一の情報が表示されます。

  • playlist.mediaTypes = 4359 (これは Music|Podcast|Audiobook|Movie|VideoiTunes) ですが、通常のプレイリストではオーディオ タイプとビデオ タイプが混在しません。
  • プロパティ MPMediaPlaylistPropertyPlaylistAttributes の値には 2 (MPMediaPlaylistAttributeSmart) が含まれますが、通常のプレイリストには 0 が含まれます。
  • アイテム数は、デバイス上のアイテムの総数と等しくなります

しかし、それだけです!サブフォルダーにアクセスする方法がわかりません。または、フォルダー内に含まれるプレイリストまたはサブフォルダーを調べたときに、それを親に関連付ける方法がわかりません。

Apple は iTunes でそれを行うので、方法があるに違いありません。彼らはいくつかのプライベート API を使用していますか?

4

1 に答える 1

10

MPMediaPlaylistvalueForPropertyメソッドを使用して探しているものを取得できる次の文書化されていないプロパティがあります: @"isFolder"、および@"parentPersistentID"

これらは文書化されておらず、どのヘッダー ファイルにも表示されないため、Apple のアプリケーション提出規則に従って、それらの使用は「プライベート API」の使用と見なされる可能性があることに注意してください。

私は Apple にバグ レポートを提出し、それらをヘッダー ファイルで利用できるようにするように依頼しました。また、それらがプライベート API の一部と見なされるかどうかを明確にするよう依頼しました。

于 2012-09-11T11:54:55.547 に答える