我需要在该应用程序关闭后在预定时间点播放语音,并尝试使用以下代码来实现此目的:
DispatchQueue.main.asyncAfter(deadline: .now() + 10) {
print("here")
let utterance = AVSpeechUtterance(string: "Test speech")
utterance.rate = AVSpeechUtteranceDefaultSpeechRate
self.synthesizer.speak(utterance)
}
在应用程序委托中的 applicationDidEnterBackground(( 函数中,但它仅适用于较小的秒数,例如 2,而不是 10。
应用进入后台后如何播放语音?
谢谢。
你不能这样做(至少不能合法地在非越狱设备上(。您的应用在后台获得 5 秒的活动,然后被暂停(少数情况除外,恕我直言,播放文本转语音不算在内(:
当应用移动到后台时,系统会调用应用委托的应用程序 DidEnterBackground(_:( 方法。该方法有五秒钟的时间来执行任何任务并返回。该方法返回后不久,系统会将应用置于挂起状态。
(摘自 Apple 文档"延长应用的后台执行时间"(