如何在最近 5 天内按播放次数获得 iTunes 库前 10 首歌曲?
Posted
技术标签:
【中文标题】如何在最近 5 天内按播放次数获得 iTunes 库前 10 首歌曲?【英文标题】:How to get iTunes Library top 10 song by playcount within recent 5days? 【发布时间】:2012-11-10 09:05:27 【问题描述】:我正在尝试在 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];
一切顺利。
【问题讨论】:
【参考方案1】:显然,播放计数被视为“用户定义”键,因此不能在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:
【讨论】:
以上是关于如何在最近 5 天内按播放次数获得 iTunes 库前 10 首歌曲?的主要内容,如果未能解决你的问题,请参考以下文章
如何提高 Oracle 中仅加载最近 5 天内修改的项目的 SQL 性能?