現在デバイスにあるすべてのプレイリストのリストを表示する必要があります。問題は、iTunes Match がオンになっているデバイスでは、電話に保存されているアイテムがゼロのプレイリストがいくつあってもよいことです。(私が知る限り)MPMediaItem download
を使用しているときにをトリガーする信頼できる方法AVAudioPlayer
がないため、ローカル エントリを持たないプレイリストを除外したいと思います。今のところ、個々のプレイリストを循環させて、 を持たない曲を削除することがassetURL
できますが、ユーザーが多くのプレイリストを持っている場合、これをグローバルに行うには遅すぎます。音楽ライブラリ全体をフィルタリングして、プレイリストを取得しようとしました
MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
[songsQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithBool:NO] forProperty:MPMediaItemPropertyIsCloudItem]];
songsQuery.groupingType = MPMediaGroupingPlaylist;
ただし、「コレクション」配列を循環すると、どの曲も除外されないように見えます。曲に があるかどうかでフィルタリングしてみますassetURL
が、もちろんそれでフィルタリングすることはできません。
誰かがこれをやってのけるかなり速い方法を持っていますか? MPMediaItem download
(代わりに、Apple には iTunes Match の扱いに関する開発者用ドキュメントがないようなので、誰かが をトリガーする適切な方法を見つけましたか?)