1

我正在尝试在 ios 中获取 iTunes 库。并试图在 5 天内检索播放次数排名前 10 的歌曲。

你能告诉我该怎么做吗?这是我的代码。MPMediaPropertyPredicate 不是正确的答案......我猜。

MPMediaQuery *everything = [[MPMediaQuery alloc] init];
NSLog(@"Logging items from a generic query...");
NSArray *itemsFromGenericQuery = [everything items];
for (MPMediaItem *song in itemsFromGenericQuery) {
    NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
    NSString *artistName = [song valueForProperty:MPMediaItemPropertyArtist];
    NSString *lastPlayeddate = [song valueForProperty:MPMediaItemPropertyLastPlayedDate];
    NSString *playCount = [song valueForProperty:MPMediaItemPropertyPlayCount];

    NSLog (@"%@", songTitle);
    text.text = [NSString stringWithFormat:@"%@\n%@ %@ %@ %@", text.text, songTitle, artistName, lastPlayeddate, playCount];
}

一切顺利。

4

1 回答 1

0

显然,播放计数被认为是“用户定义”键,因此不能用于MPMediaPropertyPredicate

请参阅http://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPMediaItem_ClassReference/Reference/Reference.html#//apple_ref/doc/uid/TP40008211-CH1-SW38

您必须手动迭代歌曲并检索这些属性。

enumerateValuesForProperties:usingBlock:在这里可能是您最有效的选择。 http://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPMediaEntity_ClassReference/Reference/Reference.html#//apple_ref/occ/instm/MPMediaEntity/enumerateValuesForProperties:usingBlock

于 2013-01-15T01:16:49.303 回答