Я делаю приложение будильника с поддержкой многозадачности. Тем не менее, я застрял с некоторыми ограничениями SDK.
Мне нужно воспроизводить выбранный звук будильника всякий раз, когда время будильника приходит с некоторыми свойствами, установленными пользователем.
Эти свойства:
- Звуком будильника может быть музыка из пользовательской библиотеки iPod, а также некоторые звуковые файлы в комплекте приложений.
- Звук будильника может быть установлен для воспроизведения как прогрессивный.
Кроме того, звук будильника должен воспроизводиться в фоновом режиме в цикле, пока пользователь не отменит или не разбудит приложение.
Первая логическая вещь, которая пришла мне в голову, - это использовать локальные уведомления, но с локальными уведомлениями вы можете воспроизводить звуковые файлы, которые находятся только в комплекте приложений (не iPod музыка) и имеют продолжительность не более 30 секунд. Также вы не получаете уведомление, когда пользователь отменяет уведомление, iOS просто перестает воспроизводить ваш звук.
Теперь я подумываю использовать опцию фонового воспроизведения звука и воспроизводить тишину до времени будильника, а затем воспроизводить звук будильника, а также показывать локальное уведомление без звука. Но опять же, как я узнаю, если пользователь отменил оповещение о локальном уведомлении и прекратил воспроизведение звука. Однако, согласно документации Apple, воспроизведение музыки на iPod (и использование общих ресурсов) по-прежнему запрещено для приложения, воспроизводящего фоновое аудио.
Я также не могу понять, как некоторые другие приложения выполняют некоторые из этих функций. Например, Night Stand HD может воспроизводить музыку iPod в фоновом режиме, а приложение с именем «Progressive Alarm Clock» может воспроизводить прогрессивный звук в фоновом режиме.
Есть идеи и предложения по этим вопросам? Любая ваша помощь будет принята с благодарностью