2014-03-26 435 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