2014-03-26 201 views
0
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_game); 
    init(); 
} 

public void init() { 
    tts = new TextToSpeech(Game.this, new OnInitListener() { 
     public void onInit(int status) { 
      if (status != TextToSpeech.ERROR) { 
       tts.setLanguage(Locale.US); 
       speakout("Hello Gies"); 
      } 
     } 
    }); 
} 

public void speakout(String text) { 
    tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 
    tv2.setText("" + text); 

} 

@Override 
protected void onPause() { 
    if (tts != null) { 
     tts.stop(); 
     tts.shutdown(); 
    } 
    super.onPause(); 
} 

代码运行正常。我试图将文本转换为语音,但我无法找到想要的输出。请帮我解决问题。 在此先感谢。Text to Speech android not working

+0

你是什么意思'找到所需的输出'?您还应该添加一个话语监听器 - 请参阅此答案中的链接http://stackoverflow.com/a/22642640/1256219 – brandall

回答

2

你不应该在成功调用onInit之前使用tts引用,并且在你创建TextToSpeech类之后,你的代码清楚地表明你正在调用speakout。将speakout("Hello Gies");移至onInit的内部。同样,如果你在onPause中关闭你的tts,那么你最好在onResume中重新创建它 - 这意味着你实际上可以将你的init();移动到onResume

+0

我已经尝试了您的建议,但代码不起作用我已经编辑了我的代码。你能帮我一个有效的代码吗? – Shubhankar

+0

看看logcat,它经常给出什么是错的提示 - 否则我不明白为什么它不起作用。 – marcinj

+0

它说initTts()无法绑定服务 – Shubhankar