跨会话持久保存iPod播放列表(MPMediaItemCollection)的最佳实践

时间:2010-04-21 05:33:00

标签: iphone mpmediapickercontroller mpmediaitemcollection

在iPhone SDK中使用应用内音频时,可以允许用户从他们的ipod库中选择列表并创建应用内本地播放列表。如果我想坚持这个选择,很容易序列化数据并写入文件,然后恢复。

然而,像这样的香草,让我觉得会出现问题。例如,如果用户同步并删除声音怎么办?我可以循环遍历它们并在设置时查询iPod数据库,但是如果列表长度可能超过50,000,则可能需要一些时间。

其他人如何做到这一点,以及我有哪些陷阱?

2 个答案:

答案 0 :(得分:3)

我会懒洋洋地做,

如果用户想要播放歌曲,您可以查询iPod DB,特别是该歌曲,也可以查看整首歌曲“Album”以防用户删除相册。在播放每首歌曲之前,这需要对数据库发出两个请求,但如果速度足够快,您可以进行基准测试等。

您还可以选择将某个选项放在“sync”应用程序中iPod DB,但作为用户的选择,给用户“警告”可能需要一段时间甚至可能会给他一个估计他特定图书馆大小的时间。

我认为从可用性/电池节省的角度来看,这比每次应用程序启动时甚至是在后台查询整个数据库要好。

答案 1 :(得分:2)

我最初发布了关于保存个人MPMediaItems的回复。经过一些思考和重新阅读MPMediaPickerControllerDelegate的文档之后,我认为使用的方法是保存representiveItem的{​​{1}}属性并使用它构建MPMediaItemCollection在运行时。