10

正しく設定していますが:

HashMap<String, String> myHashRender = new HashMap<String, String>();
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "utid");
mTts.speak("Speak something", TextToSpeech.QUEUE_ADD, myHashRender);

また

mTts.setOnUtteranceCompletedListener(this);

onInit 関数で成功を返します。それでも onUtteranceCompleted は呼び出されません。重複した質問がありますが、答えを見つけることができる場所はありません。

My Activity は OnUtteranceCompletedListener も実装しています。

助けてください。

4

1 に答える 1

18

tts オブジェクトの onInit 関数内で setOnUtteranceCompletedListener を呼び出します。

onUtteranceCompleted 関数の呼び出し時に UI を変更する場合は、runOnUIThread メソッド内にコードを追加します。

そして、speak() 関数を呼び出すときに Hashmap パラメータ値を追加することを忘れないでください

例 :

TextToSpeech tts= new TextToSpeech(context, new OnInitListener() {

 @Override
 public void onInit(int status) {

    mTts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {

        @Override
        public void onUtteranceCompleted(String utteranceId) {

            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                //UI changes
                }
            });
        }
    });

 }
});


HashMap<String, String> params = new HashMap<String, String>();

params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");

tts.speak("Text to Speak",TextToSpeech.QUEUE_FLUSH, params);
于 2011-08-19T22:12:14.863 に答える