我正在尝试在我的Activity中实现安卓的语音合成技术,但是我遇到了一个奇怪的错误。从我的代码中我听不到任何声音。只有当我将speak方法放置在onInit方法中时,它才起作用,否则它不会说话。
我的代码如下:
public class GameOverActivity extends Activity implements OnInitListener {
private TextToSpeech talker;
....
talker = new TextToSpeech(this, this);
say("Something",false);
...
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
talker.setLanguage(Locale.US);
}
else if (status == TextToSpeech.ERROR) {
Toast.makeText(this,"Error occurred while initializing Text-To-Speech engine", Toast.LENGTH_LONG).show();
}
void say(String text, boolean flush) {
if(flush == true)
{
talker.speak(text,TextToSpeech.QUEUE_FLUSH,null);
}
if(flush == false)
{
talker.speak(text,TextToSpeech.QUEUE_ADD,null);
}
}
奇怪的是如果我把say方法放在onInit中,它就能正常工作!
我仔细观察了logcat,以下是结果:
TtsService.OnCreate () TTs正在加载 AudioTrack已启动 TTSService.setLanguage 成功加载en-US 将语音速度设置为100
然后就没有任何事情发生了。
对于上述代码有什么问题有什么想法吗?
提前致谢!