首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓文本到语音: onUtteranceCompleted()未触发

安卓文本到语音: onUtteranceCompleted()未触发
EN

Stack Overflow用户
提问于 2012-02-19 11:17:43
回答 1查看 1.4K关注 0票数 1

我正在开发一个文本到语音的应用程序,onUtteranceCompleted从来不会被触发。下面是我的一些代码:

代码语言:javascript
复制
    public class MyActivity extends Activity implements OnInitListener, OnUtteranceCompletedListener {

        private TextToSpeech tts;
        private HashMap<String, String> hashAudio;

        public void onInit(int status) {
            if (status == TextToSpeech.SUCCESS) {

                //defining hashAudio, its music!
                this.hashAudio = new HashMap<String, String>();
                this.hashAudio.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC));
                this.tts.setOnUtteranceCompletedListener(this);

                this.readEnglish();
            }
        }


    public void readEnglish(){
            Log.v("MESSAGE", "reading english"); //gets shown

            this.hashAudio.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "english");
            this.tts.setLanguage(Locale.US);
            this.tts.speak("TEST", TextToSpeech.QUEUE_FLUSH, this.hashAudio);
           //gets read
        }

    public void onUtteranceCompleted(String uttId) {
            Log.v("MESSAGE", "Uterrance Completed");
            //never see this message
        }

有人知道为什么吗?我在这里介绍了一些主题和一些解决方案,但都没有奏效:(.我还仔细阅读了Android文档:(.

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-20 05:09:36

好的,我自己想出来了,我代码中唯一的问题是

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

在实例化Hashmap之后调用。因此,最终的代码应该如下所示:

代码语言:javascript
复制
this.tts.setOnUtteranceCompletedListener(this);
this.hashAudio = new HashMap<String, String>();
this.hashAudio.put(TextToSpeech.Engine.KEY_PARAM_STREAM,String.valueOf(AudioManager.STREAM_MUSIC));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9346401

复制
相关文章

相似问题

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