Воспроизведение текста в речь в запланированных точках в фоновом режиме - PullRequest
0 голосов
/ 27 августа 2018

Мне нужно воспроизвести речь в запланированные моменты после закрытия этого приложения, и я попытался использовать следующий код для достижения этой цели:

DispatchQueue.main.asyncAfter(deadline: .now() + 10) {
        print("here")
        let utterance = AVSpeechUtterance(string: "Test speech")
        utterance.rate = AVSpeechUtteranceDefaultSpeechRate
        self.synthesizer.speak(utterance)
}

в функции applicationDidEnterBackground () в делегате приложения, но этоработает только с меньшим количеством секунд, например 2, но не 10.

Как воспроизвести речь, когда приложение выходит на задний план?

Спасибо.

1 Ответ

0 голосов
/ 27 августа 2018

Вы не можете сделать это (по крайней мере, не законно на сломанном устройстве без джейла).Ваше приложение получает 5 секунд активности в фоновом режиме, а затем приостанавливается (за исключением нескольких случаев, и воспроизведение текста в речь не учитывается ИМХО):

Когда приложение переходит в фоновый режим,система вызывает метод applicationDidEnterBackground (_ :) вашего делегата приложения.Этот метод имеет пять секунд для выполнения любых задач и возврата.Вскоре после возврата этого метода система переводит ваше приложение в приостановленное состояние.

Документы Apple «Увеличение времени выполнения вашего приложения в фоновом режиме» )

...