アクティビティに 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); } }
奇妙なことに、onInit に say メソッドを配置すると、正常に動作します。
logcat を注意深く見た結果は次のとおりです。
TtsService.OnCreate () TTs が AudioTrack をロードしています TTSService.setLanguage が en-US でロードされ、音声レートを 100 に設定することに成功しました
そして何も起こりません。
上記のコードの何が問題なのか、何か考えはありますか?
前もって感謝します!