Is it possible to access iPhone/iPod Touch music stats through the SDK?

こ雲淡風輕ζ 提交于 2019-11-29 23:57:02

问题


I've seen it's possible to access musics and playlists and even play them. But is it possible to access the statistics attached to each music? Like play count, stars, dates and times of listening?


回答1:


Querying the media library...

MPMediaQuery *query = [[MPMediaQuery alloc] init];

[query addFilterPredicate: [MPMediaPropertyPredicate
                               predicateWithValue: @"Moribund the Squirrel"
                                      forProperty: MPMediaItemPropertyArtist]];
// Sets the grouping type for the media query
[query setGroupingType: MPMediaGroupingAlbum];

NSArray *albums = [query collections];
for (MPMediaItemCollection *album in albums) {
    MPMediaItem *representativeItem = [album representativeItem];
    NSString *artistName =
        [representativeItem valueForProperty: MPMediaItemPropertyArtist];
    NSString *albumName =
        [representativeItem valueForProperty: MPMediaItemPropertyAlbumTitle];
    NSLog (@"%@ by %@", albumName, artistName);

    NSArray *songs = [album items];
    for (MPMediaItem *song in songs) {
        NSString *songTitle =
            [song valueForProperty: MPMediaItemPropertyTitle];
        NSLog (@"\t\t%@", songTitle);
    }
}

System Constants...

NSString *const MPMediaItemPropertyPersistentID;      // filterable
NSString *const MPMediaItemPropertyMediaType;         // filterable
NSString *const MPMediaItemPropertyTitle;             // filterable
NSString *const MPMediaItemPropertyAlbumTitle;        // filterable
NSString *const MPMediaItemPropertyArtist;            // filterable
NSString *const MPMediaItemPropertyAlbumArtist;       // filterable
NSString *const MPMediaItemPropertyGenre;             // filterable
NSString *const MPMediaItemPropertyComposer;          // filterable
NSString *const MPMediaItemPropertyPlaybackDuration;
NSString *const MPMediaItemPropertyAlbumTrackNumber;
NSString *const MPMediaItemPropertyAlbumTrackCount;
NSString *const MPMediaItemPropertyDiscNumber;
NSString *const MPMediaItemPropertyDiscCount;
NSString *const MPMediaItemPropertyArtwork;
NSString *const MPMediaItemPropertyLyrics;
NSString *const MPMediaItemPropertyIsCompilation;     // filterable

NSString *const MPMediaItemPropertyPodcastTitle;     // filterable

NSString *const MPMediaItemPropertyPlayCount;
NSString *const MPMediaItemPropertySkipCount;
NSString *const MPMediaItemPropertyRating;
NSString *const MPMediaItemPropertyLastPlayedDate;


来源:https://stackoverflow.com/questions/2083117/is-it-possible-to-access-iphone-ipod-touch-music-stats-through-the-sdk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!