私のメインの断片では、私はTextToSpeech mainFragment extends Fragment implements TextToSpeech.OnInitListener
を実装しました。setOnUtteranceProgressListenerの中でトースターやカスタム関数を呼び出そうとしています
スピーチテキストはうまく機能しています。また、私はUtteranceProgressListener
を追加しました。
私の問題: カスタム機能を呼び出すことができません。例えば、gotoNextChapter()
または簡単なToaster
です。 取得中にエラーCan't create handler inside thread that has not called Looper.prepare()
任意の提案や歓迎のソリューション....
マイコードスニペット:UtteranceProgressListener SpeechListener = new UtteranceProgressListener() {
@Override
public void onStart(String utteranceId) {
Toast.makeText(getActivity(),utteranceId, Toast.LENGTH_LONG).show();
}
@Override
public void onDone(String utteranceId) {
Toast.makeText(getActivity(),utteranceId, Toast.LENGTH_LONG).show();
gotoNextChapter(); <====function I want to call
read_mode = 0;
}
@Override
public void onError(String utteranceId) {
Toast.makeText(getActivity(),utteranceId, Toast.LENGTH_LONG).show();
}
};
発話完全なリスナーの設定:
myTTS.setOnUtteranceProgressListener(SpeechListener);
エラーが取得しています:
Caught a RuntimeException from the binder stub implementation.
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at
android.os.Handler.<init>(Handler.java:209)
at
android.os.Handler.<init>(Handler.java:123)
at
android.widget.Toast$TN.<init>(Toast.java:350)
at
android.widget.Toast.<init>(Toast.java:106)
at
android.widget.Toast.makeText(Toast.java:264)
at com.MainActivity$Read$10.onDone(MainActivity.java:1252)