2016-01-29 29 views
0

如果我使用AVSpeechSynthesizer说一些文字,它可以在设备上正常工作,但只要我使用AirPlay,演讲的开始将会被切断,除非事先刚刚讲过。AVSpeechSynthesizer和AirPlay - 音频设备睡觉?

看起来音频设备正在睡觉。

下面是我的代码

let synthesizer = AVSpeechSynthesizer() 

func speakCall(call: (letter: String, number: Int)) -> Void { 
    for _ in 1...2 { // Speak the message twice 
     let utterance = AVSpeechUtterance(string: "\(call.letter), \(call.number)") 
     utterance.postUtteranceDelay = 0.15 
     synthesizer.speakUtterance(utterance) 
    } 
} 

回答

0

你可以告诉AVAudioPlayer玩沉默,将导致音频设备无法入睡。

let silence = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("silence", ofType: "mp3")!) 
var silencePlayer: AVAudioPlayer? 
try? silencePlayer = AVAudioPlayer(contentsOfURL: silence) 
silencePlayer?.numberOfLoops = -1 
silencePlayer?.play()