4

При использовании звука in-app в iPhone SDK можно разрешить пользователям выбирать список из своей библиотеки ipod и создавать локальный список воспроизведения в приложении. Если я хочу сохранить этот выбор, легко сериализовать данные и записать в файл, а затем восстановить.Рекомендации по сохранению списка воспроизведения iPod (MPMediaItemCollection) во время сеансов

Просто ваниль, как это, однако, заставляет меня думать, что что-то будет не так. Например, что делать, если пользователь синхронизирует и удаляет звуки? Я могу пересекать их все и запрашивать IPod DB во время настройки, но со списками, которые могут быть 50 000 длин, это может занять некоторое время.

Как другие люди делают это и какие-то ошибки, которые у меня не были?

+0

Почему каждый хочет иметь такой огромный плейлист внутри приложения? Лично (как пользователь) я предпочитаю, чтобы приложение iPod управляло моими плейлистами, единственное, что я хочу получить, это элементы управления проигрывателем и визуализация текущего плейлиста. Если у меня был плейлист, например. в моем приложении GPS Tracking оно, вероятно, будет очень коротким (> 100). –

+0

MPMediaPickerController возвращает коллекцию. Количество элементов в коллекции может быть всей библиотекой. – falconcreek

+0

Согласен, это скорее всего очень короткое. Но мне нужно покрыть все базы. Если пользователю разрешено выбирать предустановленный список воспроизведения из приложения ipod, это может быть список воспроизведения «Все песни». и мне нужно рассмотреть этот потенциальный выбор. – coneybeare

ответ

3

я бы просто сделать это лениво,

Если пользователь хочет играть песню, вы можете отправить запрос об IPOD DB, для этой песни, в частности, и, возможно, вся песня «Альбом» в случае, если пользователь удалена Альбом. Это потребовало бы двух запросов к базе данных перед воспроизведением каждой песни, но вы могли бы сравнить ее, если она достаточно быстрая, и т. Д.

Вы также можете поместить опцию где-нибудь в «sync» приложение с iPod DB, но в качестве варианта для пользователя, предоставляя пользователю «предупреждение», что это может занять некоторое время, возможно даже дать ему оценку времени для размера его конкретной библиотеки.

Я думаю, что с точки зрения удобства использования/батареи это было бы лучше, чем запрашивать всю базу данных при каждом запуске приложения или даже в фоновом режиме.

2

Первоначально я опубликовал ответ о сохранении отдельных элементов MPMediaItems. После некоторой мысли и перечитания документации для MPMediaPickerControllerDelegate, я думаю, что подход к использованию заключается в том, чтобы сохранить свойство representiveItemMPMediaItemCollection и использовать его для построения MPMediaQuery во время выполнения.