Animation 当文字到语音转换结束时做些什么

Animation 当文字到语音转换结束时做些什么,animation,drawable,text-to-speech,animationdrawable,Animation,Drawable,Text To Speech,Animationdrawable,我需要在文本到语音开始时启动一个可绘制动画,在文本到语音结束时停止这个动画,但我无法停止动画 代码: 这里是我的动画可绘制xml <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selected" android:oneshot="false" > <item android:drawable="@drawable/face_1a_mini

我需要在文本到语音开始时启动一个可绘制动画,在文本到语音结束时停止这个动画,但我无法停止动画

代码:

这里是我的动画可绘制xml

 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/selected" android:oneshot="false" >

<item android:drawable="@drawable/face_1a_mini" android:duration="250" />

<item android:drawable="@drawable/face_1b_mini" android:duration="250" />
<item android:drawable="@drawable/face_1c_mini" android:duration="250" />

<item android:drawable="@drawable/face_1d_mini" android:duration="250" />
 </animation-list>

您必须使用
while(tts.isSpeaking())将其包装起来。

例如:

while(tts.isSpeaking())
            {
                Animation animation1 = 
                AnimationUtils.loadAnimation(this,R.anim.fadein);
                view.startAnimation(animation1);
            }

您必须使用
while(tts.isSpeaking())将其包装起来。

例如:

while(tts.isSpeaking())
            {
                Animation animation1 = 
                AnimationUtils.loadAnimation(this,R.anim.fadein);
                view.startAnimation(animation1);
            }

在开始发言时启动动画,并在发言结束时停止

t1 = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
                @Override
                public void onInit(int status) {
                    if (status != TextToSpeech.ERROR) {
                        t1.setLanguage(Locale.UK);
                    t1.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                        @Override
                        public void onStart(String utteranceId) {

                        }

                        @Override
                        public void onDone(String utteranceId) {
                            if(utteranceId.equals("finish")){
                                finish();
                            }
                        }

                        @Override
                        public void onError(String utteranceId) {

                        }
                    });
                        }

                }
            });

在开始发言时启动动画,并在发言结束时停止

t1 = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
                @Override
                public void onInit(int status) {
                    if (status != TextToSpeech.ERROR) {
                        t1.setLanguage(Locale.UK);
                    t1.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                        @Override
                        public void onStart(String utteranceId) {

                        }

                        @Override
                        public void onDone(String utteranceId) {
                            if(utteranceId.equals("finish")){
                                finish();
                            }
                        }

                        @Override
                        public void onError(String utteranceId) {

                        }
                    });
                        }

                }
            });

您必须将话语Id添加到speak方法

tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {

    @Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {
            int result = tts.setLanguage(Locale.US);

            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Log.e("TTS", "This Language is not supported");
            }
            textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                @Override
                public void onStart(String utteranceId) {
                    Log.i("TextToSpeech","On Start");
                    animation.start();
                }

                @Override
                public void onDone(String utteranceId) {
                    Log.i("TextToSpeech","On Done");
                    animation.stop();
                }

                @Override
                public void onError(String utteranceId) {

                }
            });

        } else {
            Log.e("TTS", "Initilization Failed!");
        }
    }
});

private void speak(String text){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, TextToSpeech.ACTION_TTS_QUEUE_PROCESSING_COMPLETED);

    }
}

您必须将话语Id添加到speak方法

tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {

    @Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {
            int result = tts.setLanguage(Locale.US);

            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Log.e("TTS", "This Language is not supported");
            }
            textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                @Override
                public void onStart(String utteranceId) {
                    Log.i("TextToSpeech","On Start");
                    animation.start();
                }

                @Override
                public void onDone(String utteranceId) {
                    Log.i("TextToSpeech","On Done");
                    animation.stop();
                }

                @Override
                public void onError(String utteranceId) {

                }
            });

        } else {
            Log.e("TTS", "Initilization Failed!");
        }
    }
});

private void speak(String text){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, TextToSpeech.ACTION_TTS_QUEUE_PROCESSING_COMPLETED);

    }
}

您好,欢迎来到Stack Overflow,请花点时间浏览“了解您在这里的道路”(以及赢得您的第一个徽章),阅读如何创建一个“检查”,以增加您获得反馈和有用答案的机会。Hi可能重复,欢迎来到Stack Overflow,请花一点时间浏览以了解您在这里的道路(以及赢得您的第一枚徽章),阅读如何创建并检查,以增加获得反馈和有用答案的机会。可能重复