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?
+2
A:
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);
}
}
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;
slf
2010-01-18 00:33:57
Thanks a lot, exactly what I needed.
Rodrigo
2010-01-19 18:23:02