MPMediaQuery从persistentID返回曲目而不是播放列表

时间:2014-01-06 19:38:26

标签: ios objective-c media-player mpmediaitem mpmediaquery

我的代码的目的是从之前获得的持久ID返回一个MPMediaPlaylist对象。

MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:persistentID
                                                                       forProperty:MPMediaPlaylistPropertyPersistentID];
MPMediaQuery *query = [MPMediaQuery playlistsQuery];
[query addFilterPredicate:predicate];

query.items是播放列表中包含的曲目。我想要返回的是播放列表本身。我怎么做到的?

1 个答案:

答案 0 :(得分:4)

https://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPMediaPlaylist_ClassReference/Reference/Reference.html#//apple_ref/occ/cl/MPMediaPlaylist

显示如何获取播放列表的代码:

MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
NSArray *playlists = [myPlaylistsQuery collections];

for (MPMediaPlaylist *playlist in playlists) {
    NSLog (@"%@", [playlist valueForProperty: MPMediaPlaylistPropertyName]);
    // ...
}

您实际获得的是歌曲列表(items),但它们是按播放列表分组。这就是为什么要求查询的collections可以引用您所追求的MPMediaPlaylist个对象。