0

テキストの読み上げ(テキスト読み上げ)を開始するボタン(再生アイコンが背景)があります。

tts が話している間、ボタンの背景を (停止アイコンを使用して) 変更したいと考えています。次に、話すのをやめたら、ボタンの背景を最初のもの(再生アイコン)にリセットしたいと思います。

スレッドを使用して実行しようとしていますが、希望の結果が得られません..

ここでボタンクリックリスナーの私のコードを見てください:

if (tts.isSpeaking()) {
                        tts.stop();
                        btn4.setBackgroundResource(R.drawable.sound_icon);


                    } else {
                         Thread splashTread =  new Thread() {
                                @Override
                                public void run() {
                                    try {

                                        while (tts.isSpeaking()) {
                                            sleep(100);

                                            btn4.setBackgroundResource(R.drawable.stop_icon);

                                        }
                                    } catch (Exception e) {
                                        // do nothing
                                    } finally {
                                        btn4.setBackgroundResource(R.drawable.sound_icon);

                                    }
                                }
                            };


                        if (myText.equals("")) {
                            speech("No text");
                            splashTread.start();

                        } else {
                        speech(myText);
                        splashTread.start();

                    }
4

3 に答える 3

1

だから私はTTSを使用したことはありませんが、非常に高速な検索でそのコールバックが得られます:onutterancecompleted

その投稿も確認してください:TTSがいつ終了するかを知る方法は?

tts が起動したときのコールバック、背景を変更できる onInit() 、および背景を元に戻すことができる onutterancecompleted があるようです。

うまくいくかどうか教えてください。暇なときに試してみます。

于 2013-11-06T17:01:53.497 に答える