【发布时间】:2013-01-07 13:07:00
【问题描述】:
我需要显示设备上当前所有播放列表的列表。问题是,在打开 iTunes Match 的设备上,任何数量的播放列表都可能在手机上保存零个项目。因为(据我所知)当您使用AVAudioPlayer 时没有可靠的方法来触发MPMediaItem download,我想过滤掉任何没有任何本地条目的播放列表。现在我可以让它循环播放单个播放列表并删除没有assetURL 的歌曲,但是如果用户有很多播放列表,这在全球范围内执行起来太慢了。我尝试过滤整个音乐库以获取播放列表
MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
[songsQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithBool:NO] forProperty:MPMediaItemPropertyIsCloudItem]];
songsQuery.groupingType = MPMediaGroupingPlaylist;
但是,当我循环浏览“收藏”数组时,它似乎根本没有过滤掉任何歌曲。我会尝试按歌曲是否有assetURL 进行过滤,但当然您不能按此过滤。
有没有人有一个相当快速的方法来完成这个? (或者,有没有人想出一个体面的方法来触发MPMediaItem download,因为 Apple 没有关于处理 iTunes Match 的开发人员文档?)
【问题讨论】:
标签: ios objective-c icloud mpmediaitem mpmediaquery