首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在Android上正确使用TextToSpeach TTS吗?

我在Android上正确使用TextToSpeach TTS吗?
EN

Stack Overflow用户
提问于 2014-12-17 17:38:23
回答 1查看 104关注 0票数 1
代码语言:javascript
复制
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SharedPreferences gameSettings = getSharedPreferences("LangPreferences",0); 
        String lang=gameSettings.getString("Lang", "");
        System.out.println("@@menu"+lang);

            setContentView(R.layout.alarm);
          toSpeak="Alarm Received weak up";
        Toast.makeText(this, "Alarm Recieved", Toast.LENGTH_LONG).show();
        ttobj=new TextToSpeech(Alarm.this, 
              new TextToSpeech.OnInitListener() {
              @Override
              public void onInit(int status) {
                 if(status != TextToSpeech.ERROR){
                     ttobj.setLanguage(Locale.UK);
                    }               
                 }
              });
        //String toSpeak = write.getText().toString();
         speak();

    }
     @Override
       public void onPause(){
          if(ttobj !=null){
             ttobj.stop();
             ttobj.shutdown();
          }
          super.onPause();
       }
     public void speak()
     {
         Toast.makeText(getApplicationContext(), toSpeak, 
                  Toast.LENGTH_SHORT).show();
               try{   ttobj.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
               }
               catch(Exception e)
               {

               }
     }

我在做语音报警应用。我在alarm类中编写了TTS,它显示了我给TTS引擎的警报和吐司消息,但TTS引擎没有说话

logcat装箱显示它

代码语言:javascript
复制
12-17 15:00:01.264: W/TextToSpeech(31970): speak failed: not bound to TTS engine
EN

回答 1

Stack Overflow用户

发布于 2014-12-18 13:49:26

您只能在onInit()被called.So之后调用speak(),最好在onInit()中调用speak方法。下面我将修改onInit()方法。

代码语言:javascript
复制
       @Override
        public void onInit(int status) {
            if (status != TextToSpeech.ERROR) {
                ttobj.setLanguage(Locale.US); //here u have to set your local language
            }
            if(status==TextToSpeech.SUCCESS){
                speak(); 
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27522404

复制
相关文章

相似问题

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