1

我需要使用我的 iPhone 应用程序从我的 iPod 库中取出 25 首播放次数最多的歌曲。我正在使用 MPMediaQuery。

一种解决方案是遍历所有轨道,并通过 MPMediaItemPropertyAlbumTrackCount 进行比较。但我认为这有点低效。有没有办法直接获取最常播放的项目播放列表?

4

2 回答 2

4

我认为您正在寻找MPMediaItemPropertyPlayCount而不是 MPMediaItemPropertyAlbumTrackCount。MPMediaItemPropertyAlbumTrackCount 是歌曲在专辑中出现的曲目编号。

遗憾的是, MPMediaItemPropertyPlayCount不能用于使用MPMediaQuery 进行查询,因为它是用户定义的属性。

您最好的选择是在您的应用首次打开时将所有播放计数存储在像 Core Data 这样的数据库中,并在用户库更改时通过注册通知来更新它。

于 2011-10-29T14:10:53.140 回答
1

您可以使用 NSSortDescriptor 对播放次数最多的歌曲进行排序

MPMediaQuery *everything = [[MPMediaQuery alloc] init]; NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:MPMediaItemPropertyPlayCount ascending:NO]; NSArray *sortedSongsArray = [[everything items] sortedArrayUsingDescriptors:[NSArray arrayWithObject:sorter]];

于 2013-10-17T19:13:47.933 回答