onUtteranceCompleted没有被调用?

Pri*_*lia 10 android text-to-speech onutterancecompleted

即使我正确设置它:

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);
Run Code Online (Sandbox Code Playgroud)

mTts.setOnUtteranceCompletedListener(this);
Run Code Online (Sandbox Code Playgroud)

在onInit函数中返回成功.onUtteranceCompleted仍未被调用.虽然有重复的问题,但没有我能找到答案的地方.

我的Activity还实现了OnUtteranceCompletedListener.

请帮忙.

sm *_*bas 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);
Run Code Online (Sandbox Code Playgroud)