在 iPhone SDK 中使用应用内音频时,可以允许用户从他们的 ipod 库中选择一个列表并创建一个应用内本地播放列表。如果我想坚持这个选择,很容易序列化数据并写入文件,然后恢复。
然而,像这样的香草让我认为会有问题。例如,如果用户同步和删除声音怎么办?我可以遍历它们并在设置时查询 iPod DB,但是对于可能有 50,000 长的列表,这可能需要一些时间。
其他人如何做到这一点,还有哪些我没有想到的陷阱?
在 iPhone SDK 中使用应用内音频时,可以允许用户从他们的 ipod 库中选择一个列表并创建一个应用内本地播放列表。如果我想坚持这个选择,很容易序列化数据并写入文件,然后恢复。
然而,像这样的香草让我认为会有问题。例如,如果用户同步和删除声音怎么办?我可以遍历它们并在设置时查询 iPod DB,但是对于可能有 50,000 长的列表,这可能需要一些时间。
其他人如何做到这一点,还有哪些我没有想到的陷阱?
我只是懒惰地做,
如果用户想要播放一首歌曲,您可以查询 iPod DB,特别是该歌曲,如果用户删除了专辑,则可能是整首歌曲“Album”。这将需要在播放每首歌曲之前向数据库发出两次请求,但如果它足够快等,您可以进行基准测试。
您也可以在某处放置一个选项以“ sync
”应用程序与iPod DB
,但作为用户的选择,给用户一个“警告”它可能需要一段时间,甚至可能给他一个时间估计他的大小特定的图书馆。
我认为从可用性/电池节省的角度来看,这比每次启动应用程序时甚至在后台查询整个数据库要好。
我最初发布了关于保存单个 MPMediaItems 的回复。经过一番思考和重新阅读文档后MPMediaPickerControllerDelegate
,我认为使用的方法是保存 的representiveItem
属性MPMediaItemCollection
并使用它MPMediaQuery
在运行时构造一个。