android tts在屏幕旋转下说失控

时间:2013-04-28 07:27:09

标签: android android-activity text-to-speech

我有一个TTS对象。该TTS对象重复单词'help'。我有一个布尔标志。当此标志设置为false时,while循环中断,TTS对象停止。下面是代码。基本上,tts在OnCreate中启动,并在OnDestroy中销毁。有一个启动tts的按钮和一个停止tts的按钮。

protected void onCreate(Bundle savedInstanceState) {
    ....
    IniTts();
}

@Override
protected void onDestroy()
{
    if (_tts != null)
    {
        _tts.shutdown();

    }
    super.onDestroy();


}   
public OnBottonPressedStartShutting() {
        _tts.speak("help", TextToSpeech.QUEUE_FLUSH, myHashAlarm); 
}

public OnBottonPressedStopShutting() {
        bContinueTtsPlay  = false; 
}


public void onUtteranceCompleted(String uttId) {

    this.runOnUiThread(new Runnable() {
        public void run() {
        if (bContinueTtsPlay == true) _tts.speak("help", TextToSpeech.QUEUE_FLUSH, myHashAlarm); ;
}

它按预期工作但在以下两种情况下失败:  1.我旋转屏幕  2.按home键并重新打开暂停的应用程序。 在这两种情况下,我发现我仍然可以反复听到“帮助声音”,但我无法通过按下“停止按钮”来阻止它。

我想当屏幕旋转时,tts对象会关闭,屏幕旋转后,tts对象会恢复。来自'runOnUiThread'的请求继续,因此我仍然可以听到'帮助声音'。但事实证明我无法通过按“停止按钮”来阻止它。 请看一下上面的代码并告诉我错误的逻辑在哪里。 谢谢!

0 个答案:

没有答案