Android TTSでonUtteranceCompleted()が呼び出されるための実装方法

Updated: / Reading time: 1 minutes

onUtteranceCompleted()内でToast表示しようとしたけれど、発声が終わってもToastが表示されないので調べたら、以下が原因でした。

  • setOnUtteranceCompletedListener()は初期化後に呼び出さなくてはならない。onInit()中に呼び出すと良い。
  • speak()呼出し時に、TextToSpeech.Engine.KEY_PARAM_UTTERANCE_IDキーを設定したパラメータを渡す。渡さないとonUtteranceCompleted()は呼び出されない。
  • onUtteranceCompleted()はUIスレッドではないので、そもそもToast表示できない。runOnUiThread()などでUIスレッドで実行すること。

参考リンク