我想知道我正在使用一个Android应用程序,其中MediaPlayer / TextToSpeech用于告诉用户一些东西,然后在MediaPlayer / TextToSpeech完成后打开语音识别对象,另一个在他们回答问题后播放承认。问题是我不是百分之百确定一种方法或好方法,可以在MediaPlayer启动后延迟语音识别开启,或等到媒体播放器在语音识别开启之前完成。我根据自己的知识/ Google看到了一些选项 -
使用方法isPlaying(MediaPlayer)/ isSpeaking(TextToSpeech)并将它们置于某种循环中进行检查,直到它们不再为真,然后打开语音识别。
调用Thread.sleep()。我看到的问题是我不确定用户会说多长时间,所以它仍然会被打断,除非我把它放在高速时间,这只会减慢应用程序的速度。
我已经研究过并使用过Handler类,但还没有完全理解如何做到这一点......有人帮忙吗?
答案 0 :(得分:2)
如果您想在MediaPlayer
完成后执行某些操作,则可以设置OnCompletionListener setOnCompletionListener()以在媒体播放完成时接收回叫。