AVSpeechSynthesizer 和 AirPlay — 音频设备休眠?
Posted
技术标签:
【中文标题】AVSpeechSynthesizer 和 AirPlay — 音频设备休眠?【英文标题】:AVSpeechSynthesizer and AirPlay — Audio Device Sleeping? 【发布时间】:2016-01-29 21:28:43 【问题描述】:如果我使用 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)
【问题讨论】:
【参考方案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()
【讨论】:
以上是关于AVSpeechSynthesizer 和 AirPlay — 音频设备休眠?的主要内容,如果未能解决你的问题,请参考以下文章
Avspeechsynthesizer 语音音频文件,UILocalNotification