我正在制作一个简单的 Android 程序,该程序运行助记符或数学练习以用于培训目的。我有一个“新练习”按钮,可以更改问题和答案。我想实现“文本到语音”模式,软件读取问题和答案。他们说完后,它应该计算一个新的问题并重新开始。
我正在使用 OnUtteranceCompleted 来确定演讲是否已经结束。我的问题是我无法从回调中访问我的“新练习”按钮。
我正在使用这个:
private TextToSpeech.OnUtteranceCompletedListener onUtteranceCompleted = new TextToSpeech.OnUtteranceCompletedListener()
{
@Override
public void onUtteranceCompleted(String utteranceId)
{
if(0 == utteranceId.compareToIgnoreCase(END_OF_SPEECH))
{
Log.i("TTS","Completed");
if (TTSMode == TTS_MODE_ON) {
//Start new
Log.i("TTS","TTS mode is on: start new exercize");
NewExercize();
btnNewEx.performClick();
}
}
}
};
我收到以下错误:$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图。
我能够生成新的问题/答案,但我不能使用按钮来更改带有新问题或答案的字段,这些字段由 TTS 引擎使用。
有任何想法吗?