在两个并行进程之间同步Android

时间:2015-11-03 18:33:31

标签: android animation text-to-speech

这是一个谈话头像的情况,动画和语音必须同步。

以下代码是按下发言按钮时调用的onClick函数。

    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            avatarSpeak.stop();
            tts1.setPitch(p1);
            tts1.setSpeechRate(sr1);
            String toSpeak = ed1.getText().toString();
            createAnim(toSpeak, sr1);
            lang = sp1.getSelectedItem().toString();
            if (lang.equals("US")) {
                System.out.print("Condition satisfied");
                tts1.setLanguage(Locale.US);
            } else if (lang.equals("UK"))
                tts1.setLanguage(Locale.UK);
            else if (lang.equals("Germany"))
                tts1.setLanguage(Locale.GERMANY);
            else if (lang.equals("Italy"))
                tts1.setLanguage(Locale.ITALY);
            else if (lang.equals("Japan"))
                tts1.setLanguage(Locale.JAPAN);
            else
                tts1.setLanguage(Locale.CHINA);

            Toast.makeText(getApplicationContext(), toSpeak, Toast.LENGTH_SHORT).show();
            tts1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                tts1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null, null);
            } else {
                tts1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
            }
            avatarSpeak.start();
        }
    });

您可以阅读代码 avatarSpeak 是animationDrawable,它会播放语音的动画。根据 createAnim 函数输入的文本,在代码中调用动画。只有在调用 speak 函数后才能调用动画函数来说出单词。

然而,当应用程序第一次运行时,动画首先播放,并在几秒钟延迟后发生语音。在动画之前调用语音时,如何发生这种情况。?

如果需要,我可以提供更多数据。

0 个答案:

没有答案