我正在尝试在我的 Activity 中实现 android 的文本到语音技术,但我遇到了一个奇怪的错误。从我的代码中,我听不到任何声音。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
然后什么也没有发生。
知道上面的代码有什么问题吗?
提前致谢!