我想在我的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