如何在swift中暂停和恢复AVSpeechSynthesizer/AVSpeechUtterance?

KML*_*KML 9 text-to-speech avfoundation avspeechsynthesizer swift

我已经在我的应用程序中实现了文本到语音,它可以正常使用我目前使用的代码.基本上算法创建文本,然后如果用户点击UIButton,则说出文本.

挑战:我想启用相同的UIButton来暂停合成器,如果按钮已经被轻敲(即当前正在说话文本),然后如果再次点击按钮则继续说话停止.

我知道AVFoundation Reference中有一些函数,但我无法正确实现它们.

有谁知道如何在Swift中这样做?

import UIKit
import AVFoundation


    @IBOutlet var generatedText: UILabel!

@IBAction func buttonSpeakClicked(sender: UIButton){
    var mySpeechSynthesizer:AVSpeechSynthesizer = AVSpeechSynthesizer()
    var mySpeechUtterance:AVSpeechUtterance = AVSpeechUtterance(string:generatedText.text)
    mySpeechUtterance.rate = 0.075

mySpeechSynthesizer .speakUtterance(mySpeechUtterance)
}
Run Code Online (Sandbox Code Playgroud)

lan*_*ncy 5

AVSpeechSynthesizer类参考

你试过这些方法吗? - pauseSpeakingAtBoundary:- continueSpeaking

这些是一些属性,(pausedspeaking)可以帮助您确定合成器的状态.

像这样的代码应该工作: mySpeechSynthesizer.pauseSpeakingAtBoundary(AVSpeechBoundary.Immediate)