Вы уже объявили свою фоновую задачу?
Поддержка некоторых типов фонового выполнения должна быть заранее объявлена приложением, которое их использует.Приложение заявляет о поддержке службы, используя свой файл Info.plist.Добавьте ключ UIBackgroundModes
в файл Info.plist и установите его значение в массив, содержащий одну или несколько из следующих строк:
audio
- приложение воспроизводит звуковой контент для пользователя в фоновом режиме,(Это содержимое включает потоковое аудио или видео с использованием AirPlay.)
Руководство по программированию приложения для iOS - реализация долгосрочных фоновых задач
Вы можете добавить это, нажавна значке основного проекта, затем на вкладке «Информация» вы можете добавить «Необходимые фоновые режимы» в раздел «Пользовательские свойства целевого объекта iOS».«Приложение воспроизводит звук» будет одним из трех значений по умолчанию.
Большое редактирование с новым ответом:
Если все остальное уже в порядке, вы можете поддерживать приложение в фоновом режиме, используяметод UIApplication
- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler
подробно описан здесь: Ссылка на класс UIApplication
с примером здесь: Час 21: Создание фоновых приложений
Это позволяет вам запускать экземпляр NSTimer, который запускает ваш музыкальный проигрыватель.Разница между этим подходом и UILocalNotifications заключается в том, что этот метод никогда не позволяет приложению полностью перейти в фоновый режим, музыкальный проигрыватель существует все время, что устраняет необходимость его создания из фона, что выглядит невозможным.
Могут быть ограничения на то, как долго вы можете установить таймер, я не проверял это последние 14 минут.