TextToSpeech仅在按下按钮时有效,而不是在单独调用时有效

时间:2014-04-07 04:12:50

标签: java android text-to-speech

我试图做一些非常简单的事情,或者我认为是。

在我的BluetoothChat中,我设置了

public static boolean potato = false;

在我的MainActivity的onCreateBundle中,我有

talker = new TextToSpeech(getApplicationContext(),new TextToSpeech.OnInitListener()
{
   @Override

     public void onInit(int status)
        {
            if(status != TextToSpeech.ERROR)
              {
                 talker.setLanguage(Locale.US);
               }
         }
 });

if(BluetoothChat.potato == false)
{
  speakOut();
}

当speakOut();通过按钮调用或单独调用它可以工作。

public void speakOut()
{
  String original ="You will have a seizure in thirty seconds.";
  talker.speak(original,TextToSpeech.QUEUE_FLUSH,null);
}

然而,这不起作用。有人可以解释原因吗?

1 个答案:

答案 0 :(得分:1)

感谢Payeli的帮助。这是解决方案!将if语句放在onInit中。

talker = new TextToSpeech(getApplicationContext(),new TextToSpeech.OnInitListener()
{
   @Override

     public void onInit(int status)
        {
            if(status != TextToSpeech.ERROR)
              {
                 talker.setLanguage(Locale.US);
               }
            if(BluetoothChat.potato == false)
            {
              speakOut();
             }
         }
     });