首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onUtteranceCompleted不会被调用?

onUtteranceCompleted不会被调用?
EN

Stack Overflow用户
提问于 2011-07-11 12:55:46
回答 1查看 4.2K关注 0票数 10

尽管我的设置是正确的:

代码语言:javascript
复制
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);

也是

代码语言:javascript
复制
mTts.setOnUtteranceCompletedListener(this);

在onInit函数中返回success。尽管如此,onUtteranceCompleted仍然没有被调用。虽然有重复的问题,但我在哪里都找不到答案。

我的活动还实现了OnUtteranceCompletedListener。

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-20 06:12:15

在tts对象的onInit函数中调用setOnUtteranceCompletedListener。

如果要在调用onUtteranceCompleted函数时对UI进行任何更改,请在runOnUIThread方法中添加代码。

并且一定要记住在调用to ()函数时添加Hashmap param值

示例:

代码语言:javascript
复制
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);
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6645893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档