我需要按顺序从 iOS 设备中获取最近播放的N首歌曲的列表。
目前,我能想象到的唯一方法是通过 an 获取所有歌曲MPMediaQuery
并手动对它们进行排序lastPlayedDate
。
这是一个潜在的昂贵操作,我想知道是否有更好的方法。
编辑:经过一些测试,这是一项非常昂贵的操作。在包含 2500 首歌曲的测试库中,大约需要 20 秒:
- 获取所有歌曲。
- 为所有从未播放过的歌曲指定一个日期(1970 年 1 月 1 日)。
- 按日期订购。
- 获取前N个条目。
任何改进建议将不胜感激。
编辑2:现在解决了,但只是为了记录,这就是我正在做的事情。
我正在使用此处描述的块进行排序:https ://stackoverflow.com/a/805589/112702 。只需将排序方法更改为 Bryan 的答案,我在 iPod Touch 3 上的速度提高了近 20 倍。