TextToSpeech tts = new TextToSpeech(context, this);
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
話すのをやめるとき、私はいくつかの追加のコードを実行する必要があるため、話しているときにスピーチが終了したことをどのように知ることができますか。しかし、私はスピーチが話し終わったかどうかを確認する方法がわからないので問題があります。
これを確認するオプションはありますか?
TextToSpeech tts = new TextToSpeech(context, this);
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
話すのをやめるとき、私はいくつかの追加のコードを実行する必要があるため、話しているときにスピーチが終了したことをどのように知ることができますか。しかし、私はスピーチが話し終わったかどうかを確認する方法がわからないので問題があります。
これを確認するオプションはありますか?
はい、2 つのリスナーがあります。
私は UtteranceProgressListener を使用していませんが、OnUtteranceCompletedListener は非常に特殊です。以下に 2 つのヒントを示します。
onInit()
コールバックに設定します。params
3 番目のパラメーターをspeak()
有効なで渡す必要がありますKEY_PARAM_UTTERANCE_ID
。そうしないと、このリスナーは呼び出されません。私が知っている限り、これにはリスナーはありませんが、isSpeaking()
TTS エンジンが話し中かどうかを確認するために呼び出されるメソッドがあります。このメソッドの助けを借りて、それが話しているかどうかを確認できるように
public boolean isDoneSpeaking() {
if(!mTts.isSpeaking())
{
return true;
}
else
{
return false;
}
}