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)
    }
}

person Daniel Radtke    schedule 29.01.2016    source источник


Ответы (1)


Вы можете указать AVAudioPlayer воспроизводить тишину, что приведет к тому, что аудиоустройство не будет спать.

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