Androidでテキストを音声で読み上げるのは以下で行います。
※端末によっては日本語の読み上げに対応していないことがあるようです。
TextToSpeechの保持変数を定義します。
//TTSインスタンス public static final String TTS_SPEAK_ID = "ALAM_SPEAKING"; private TextToSpeech mTTS; private boolean mTTSInit = false;
TextToSpeechのイベントを受け取るリスナーを定義します。
////////////////////////////////////////////////////////////////////////// //TextToSpeech.OnInitListener //初期化完了を受け取るリスナー private final TextToSpeech.OnInitListener mTTSOnInitListener = status -> { // TTS初期化 if (TextToSpeech.SUCCESS == status) { //初期化完了したことを保存する mTTSInit = true; } else { //エラー時の処理 } }; //再生開始、停止、エラーを受け取るリスナー private final UtteranceProgressListener mUtteranceProgressListener = new UtteranceProgressListener(){ @Override public void onStart(String s) { } @Override public void onDone(String s) { } @Override public void onError(String s) { } };
onCreateハンドラなどで初期化します。
@Override public void onCreate() { super.onCreate(); // TTS インスタンス生成 mTTS = new TextToSpeech(this, mTTSOnInitListener); mTTS.setOnUtteranceProgressListener(mUtteranceProgressListener); }
任意の個所で再生します。
if(mTTSInit){ //初期化済みなら音声を再生する mTTS.speak("テスト音声", TextToSpeech.QUEUE_FLUSH, null, "TTS_SPEAK_ID"); }
0 件のコメント :
コメントを投稿