1

我有许多使用 TTS 和语音识别的代码部分。但是,当一行中有多个 tts 或连续有多个语音识别时,它要么崩溃,要么完全跳过它们。有时它会继续执行代码而不等待识别完成,这将导致稍后崩溃和不正确的变量。如何让我的应用暂停并等待完成?我研究了等待、枚举器、子例程,但似乎没有一个能解决问题。任何帮助,将不胜感激。

4

1 回答 1

1

使用 TTS 时,请尝试UtteranceProgressListener在您的 TTS 类上扩展(API 级别 15 或更高)。这里是关于如何使用该抽象类的Android 文档。该抽象类包含public void onDone(String utteranceId){} 在您的演讲完成时将调用的方法。对于语音识别,如果你使用了RecognitionListener,有一个方法public void onResults (Bundle arg0)会在语音识别结束时调用并给你一个结果。所以现在你知道 TTS 和语音识别何时完成。只需尝试在 TTS onDone() 或语音识别 onResult 中运行一些代码。希望这会有所帮助。

于 2013-04-21T09:10:36.110 回答