我想您可以使用委托方法来判断 AV 语音何时结束
extension MyViewController: AVSpeechSynthesizerDelegate {
func speechSynthesizer(synthesizer: AVSpeechSynthesizer, didFinishSpeechUtterance utterance: AVSpeechUtterance) {
print("speech finished")
}
}
但是你怎么知道演讲是否正在进行并且还没有结束呢?
现在,我开始一些演讲
voice.speak(utt)
//do something
我想在对方before
说完的时候做点什么。仅仅在下面放一条线voice.speak(utt)
似乎不起作用。我认为这是由于比赛条件。我不能确定它会在语音被触发后以及在话语完成后委托方法触发之前触发。
完成块无济于事,因为我想在话语完成之前做一些事情。那么我如何在话语发生时做某事,换句话说,在话语开始的那一刻开始做某事?