我想在我的Activity中实现android的文本语音技术,但是我面临一个奇怪的错误。我的代码中听不到任何声音。说方法只有当我把它放在onInit方法中,否则它不会说话。Android TTS不会发言
我的代码如下:
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); } }
奇怪的是,如果我把在OnInit中的发言权方法,它工作正常!
我看到logcat的细心和这里的结果:
TtsService.OnCreate() 的TT加载 AudioTrack开始 TTSService.setLanguage 加载的en-US succusfully 设置语速为100
然后什么也没有发生。
对上述代码有什么问题有任何想法吗?
在此先感谢!
说起动时flush的值是什么? – Brian 2012-03-12 13:50:22
如果使它成真或假,它没有任何区别 – Nick 2012-03-12 14:04:11