0

我想知道我正在开发一个 Android 应用程序,其中 MediaPlayer/TextToSpeech 用于告诉用户一些事情,然后在 MediaPlayer/TextToSpeech 完成后打开一个语音识别对象,并在他们通过识别回答问题后播放另一个对象。问题是我不能 100% 确定在 MediaPlayer 启动后立即延迟语音识别打开的方法或好方法,或者在语音识别打开之前等到媒体播放器完成。根据我自己的知识/谷歌,我看到了一些选项 -

使用方法 isPlaying(MediaPlayer)/isSpeaking(TextToSpeech) 并将它们置于某种循环中进行检查,直到它们不再为真,然后打开语音识别。

调用 Thread.sleep()。我看到的问题是我不确定用户到底要说话多长时间,所以它仍然可能会被打断,除非我把它放在一个只会减慢应用程序速度的高时间。

我已经研究并使用了 Handler 类,但还没有完全理解如何做到这一点......有人帮忙吗?

4

1 回答 1

2

如果您想在播放完成时执行某些操作MediaPlayer,可以使用 setOnCompletionListener() 设置OnCompletionListener媒体播放完成时接收回调。

于 2015-12-03T00:05:56.203 回答