gpt4 book ai didi

ios - UI 更新期间 AVSpeechSynthesizer 卡顿

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:33:14 27 4
gpt4 key购买 nike

AVSpeechSynthesizer 正在说一个句子时,UI 发生变化(例如 ViewController 被推送,UIButton的标题已更改,...),AVSpeechSynthesizer 出现卡顿。

我所有的 UI 更改都在 dispatch_async block 中。我必须这样做,否则 UI 无法正确更新。

dispatch_async(dispatch_get_main_queue(), ^{
[self.aButton setTitle:@"title" forState:UIControlStateNormal];
});

我已经尝试在主线程和后台线程上运行 speakUtterance,但没关系,口吃一直在发生。

如果 speakUtterance 期间没有 UI 变化,则完全没有问题。

这是 AVSpeechSynthesizer 中的错误吗?我是否遗漏了有关线程的内容?

最佳答案

好的,我知道发生了什么。

调用 AVSpeechSynthesizer 的函数每次都执行这段代码:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionDuckOthers
error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];

事实证明这完全没有必要,并且会导致 AVSpeechSynthesizer 出现打嗝和卡顿现象。

所以这毕竟与在演讲期间做 UI 相关的事情无关。

关于ios - UI 更新期间 AVSpeechSynthesizer 卡顿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com