TTSエンジンを使用するアプリケーションを開発しました。TTSエンジンが初期化されなくなるまで現在のアクティビティをブロックする方法
問題は、私はTTSエンジンが初期化されるまで待つ必要があります。私はsleepメソッドを使っていますが、うまくいきません。ここ
は私が後に現在の活動を再開するために、コードのきちんとしたブロックを書き込むことができますどのようにinitialized.so私はTTSエンジンまで待つ必要が私のコード
public void onCreate(Bundle savedInstanceState) {
......
Intent checkin = new Intent();
checkin.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkin, MY_DATA_CHECKCODE1);
//l.setOnTouchListener(this);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
tts.speak("Enter sms", TextToSpeech.QUEUE_FLUSH, null);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECKCODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
tts = new TextToSpeech(this, this);
tts.setLanguage(Locale.US);
tts.setSpeechRate((float) 0.4);
}
}
}
の代わりに、上記の睡眠方法はないです
TTSエンジンは、TTS
が初期化されているかどうかをループでチェックするためのハードコーディングを行う代わりに、初期化されています(これを行う方法もわかりません)。
Iは
tts.speak("Enter sms", TextToSpeech.QUEUE_FLUSH, null);
方法を使用する場合、アプリケーションの状態が非応答と投げNULLポインタ例外
に実行されています。だから私にこの問題を解決するための解決策を提案してください。私はグーグルでは、しかし、適切な答えを見つけることができませんでした。
誰か..私はできるだけ早く – siva
男としてそれを必要としますあなたがこの問題を見るなら、ヒラル。私はチャットの特権を得ました。 – siva