AVSpeechSynthesizer在后台模式下

我的iOS应用程序处于后台模式时无法使iOS 7 AVSpeechSynthesizer工作。 我已经添加了“ 应用程序播放audio ”键的应用程序的支持的背景模式,但我仍然无法得到它的工作。

我也调查了用AVMutableCompositionTrack话语创build一个AVMutableCompositionTrack的可能性,然后用一个能够在后台运行的玩家以某种方式玩它,但没有运气。

在后台使用AVSpeechSynthesizer有没有人比我有更好的运气?

  1. 您必须在背景模式下设置“audio和AirPlay”。
  2. 您必须configurationaudio会话:
  NSError *error = NULL; AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayback error:&error]; if(error) { // Do some error handling } [session setActive:YES error:&error]; if (error) { // Do some error handling } 

对于swift 3,导入AVKit(或AVFoundation)然后添加

 try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 

viewWillAppear()。 这使得无论静音开关状态如何,在屏幕closures的情况下都可以播放audio。

*编辑:AVAudioSession在AVFoundation中定义,也可用于AVKit