2017-01-12 2 views
1

Множество приложений для тревог удалось воспроизвести звук с заблокированным экраном через несколько часов (примеры: «Восход», «Волновой будильник»)iOS: Как звуковые приложения воспроизводятся после того, как приложение неактивно?

Все, что вам нужно сделать, это установить будильник и заблокировать экран, пока приложение открыто, и будильник будет через несколько часов после закрытия экрана.

мне удалось выяснить, как играть аудио с AVPlayer в то время как мое устройство заблокировано:

  1. Набор фоновых возможностей для аудио

  2. Set «приложение не работает в фоновом режиме», чтобы ДА

3.

do { 
     try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
     print("AVAudioSession Category Playback OK") 
    do { 
     try AVAudioSession.sharedInstance().setActive(true) 
     print("AVAudioSession is Active") 
     } catch let error as NSError { 
      print(error.localizedDescription) 
     } 
    } catch let error as NSError { 
     print(error.localizedDescription) 
    } 

Когда я пытаюсь установить NSTimer или использовать dispatch_after для запуска кода, который воспроизводит мой аудиофайл и блокирует мой iPhone, таймер останавливается довольно быстро, потому что, по-видимому, приложение становится неактивным через несколько секунд (Но только когда я запускаю приложение из главного экрана и не работает, когда я запускаю приложение из xcode, btw)

Есть ли у кого-нибудь идеи, как эти приложения для будильника могут задерживать звук? Спасибо за помощь!

EDIT: Я выяснил, как они это делают. Я подал сигнал тревоги и выслушал динамики. Эти приложения играют тихий звук, чтобы оставаться активным. Не знаю, как они прошли проверку яблоками, но, видимо, многие приложения для будильника делают это и проходят

+0

Местные уведомления, возможно –

+0

nope. локальные уведомления ограничены звуками 30 секунд макс, а также они не звонят при молчании , но эти приложения делают –

+0

Они могут помещать будильник в свой Календарь (событие типа alarm). – Sulthan

ответ

0

Эти приложения достигают этого, отказываясь от режима многозадачности. Если приложение выбирает режим многозадачности, приложение не приостанавливается, если приложение находилось на переднем плане, когда устройство было заблокировано, и, следовательно, они могут воспроизводить звуковой сигнал при поступлении времени. Вы можете прочитать больше here

Смежные вопросы