[英]Android text-to-speech button click issue
我在使用文字轉語音時遇到了問題。 我有一個按鈕,當用戶點擊它時會說出textview中的單詞。 但是,當我第一次點擊按鈕時,它沒有說話,第二次再次點擊按鈕然后說話。 為什么我需要再次點擊按鈕?
這是我到目前為止所嘗試的:
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
speakOut();
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
private void speakOut() {
String text = tvWord.getText().toString();
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
@Override
public void onDestroy() {
// Don't forget to shutdown tts!
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.ibSpeak:
tts = new TextToSpeech(this, this);
speakOut();
break;
case R.id.tvB:
//Intent i = new Intent(this, )
break;
}
}
有任何想法嗎? 我很感激你的幫助。 謝謝。
在onCreate()中初始化您的語音引擎,而不是在onClick()中,所以移動這一行:
tts = new TextToSpeach(this, this);
to onCreate()
引擎初始化需要一些時間,因為你在onInit()中調用speakOut(),只需等待幾秒鍾啟動應用程序,如果初始化成功,你應該聽到聲音。
每次單擊按鈕時都不必創建TTS引擎的新實例,因此將來可能會導致一些問題。 如果您將創建tts替換為onCreate,例如問題將得到解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.