2013-04-15 22 views
1

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

+0

相关http://stackoverflow.com/questions/23650973/speech-to-text-and-text-to-speech-at-same-timem http://stackoverflow.com/questions/5480573/tts-and -speech输入同时地?RQ = 1 –

回答

1

使用TTS时,尝试在您的TTS类上延伸UtteranceProgressListener(API等级15或更高)。 这里是Android documentation关于如何使用那个抽象类。这个抽象类包括 方法public void onDone(String utteranceId){} 当你的发言完成时,这将被调用。 用于语音识别,如果您使用的是RecognitionListener,则有方法public void onResults (Bundle arg0),这将在语音识别结束时调用,并且会给您一个结果。 所以现在你知道什么时候TTS和语音识别完成了。只要尝试在TTS onDone()或语音识别onResult中运行一些代码即可。希望这会有所帮助。