等待TTS /语音识别在Android应用中完成

时间:2013-04-15 19:50:27

标签: android speech-recognition text-to-speech voice

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

1 个答案:

答案 0 :(得分:1)

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