【问题标题】:MPMediaQuery returning tracks instead of playlist from persistentIDMPMediaQuery 从persistentID 返回曲目而不是播放列表
【发布时间】:2014-01-06 19:38:25
【问题描述】:

我的代码的目的是从先前获得的 persistentID 返回 MPMediaPlaylist 对象。

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

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

【问题讨论】:

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


    【解决方案1】:

    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 对象。

    【讨论】:

    • 对我来说最重要的一点是通过 [MPMediaQuery playlistsQuery] 获取查询对象,然后添加谓词。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多