簡體   English   中英

Android文字轉語音按鈕點擊問題

[英]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;
    }
}

有任何想法嗎? 我很感激你的幫助。 謝謝。

  1. 在onCreate()中初始化您的語音引擎,而不是在onClick()中,所以移動這一行:

     tts = new TextToSpeach(this, this); 

    to onCreate()

  2. 引擎初始化需要一些時間,因為你在onInit()中調用speakOut(),只需等待幾秒鍾啟動應用程序,如果初始化成功,你應該聽到聲音。

每次單擊按鈕時都不必創建TTS引擎的新實例,因此將來可能會導致一些問題。 如果您將創建tts替換為onCreate,例如問題將得到解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM