首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextToSpeech onUtteranceCompleted错误

TextToSpeech onUtteranceCompleted错误
EN

Stack Overflow用户
提问于 2011-08-08 16:52:49
回答 1查看 323关注 0票数 1

当我使用Android TextToSpeechOnUtteranceCompletedListener()时,我遇到了内存问题。如果您不使用OnUtteranceCompletedListener(),那么一切都很好。

为什么?

代码语言:javascript
复制
final Runnable finish = new Runnable() 
{
   public void run() 
   {
        Intent intent = new Intent();
        intent.setClass(main.this, main.class);
        startActivity(intent);
   }
};


public void SAY_TTS()
{     
    final HashMap<String, String> ttsParams = new HashMap<String, String>(); 
    ttsParams.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "done"); 
    tts = new TextToSpeech(this, new OnInitListener() {
        public void onInit(int status) 
        {
            if (status == TextToSpeech.SUCCESS)   
            { 
                tts.setLanguage(Locale.ENGLISH);
                tts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {
                    public void onUtteranceCompleted(String uttID) 
                    {
                        tts.stop();
                        tts.shutdown();
                        handler_finish.post(finish);
                    }   
                });

                tts.speak("this is a test", TextToSpeech.QUEUE_ADD, ttsParams);                 

            }
        }
    });       
} 
EN

回答 1

Stack Overflow用户

发布于 2012-08-21 23:48:46

如果其他人看到这个问题,我认为问题实际上出在使用OnUtteranceCompletedListener而不是的情况下。如果你不使用它,你就永远不会调用tts.shutdown(),这意味着TextToSpeech资源永远不会释放,这会导致安卓在你的Activity结束时发出抱怨(因为它看到你没有清理好自己的东西)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6979674

复制
相关文章

相似问题

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