作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 ChordActivity 应用程序中有一组按钮,采用 LinearLayout。单击按钮时,我希望 TextToSpeech 引擎说出所单击按钮的名称(例如 Minor 7th),这工作正常。我还希望出现按钮“弹出然后返回”的动画,我也在工作。问题是无论我如何安排代码,语音都是先发生,然后是动画。我希望它们同时发生。我知道 TextToSpeech 有自己的消息队列,所以我假设如果我使用 runnable 来制作动画,我可以让语音和动画同时发生,但事实并非如此。然后我退出了 runnable,现在有以下代码。有人对此有解决方案吗?非常感谢。
private void speakChordMessage(View v) {
image = (ImageView) v;
image.startAnimation(animScale);
chordTTS.playSilence(2000, TextToSpeech.QUEUE_FLUSH, null);
chordTTS.speak(str1, TextToSpeech.QUEUE_FLUSH, null);
while (chordTTS.isSpeaking()) {
}
}
animscale.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator" >
<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="100%"
android:pivotY="0%"
android:repeatCount="1"
android:repeatMode="reverse"
android:startOffset="0"
android:toXScale="1.3"
android:toYScale="1.25" />
</set>
最佳答案
如果您添加 AnimationListener在调用 startAnimation 之前添加到动画,你将有一个回调
public void onAnimationStart(Animation animation){}
动画与 TextToSpeech 引擎并不完全不同,它被添加到队列系统中并且不会立即执行。如果您在 onAnimationStart() 中调用 chordTTS.speak(),它应该会大大减少您看到的延迟。从那里开始,您可能需要尝试小的延迟以达到预期的效果。
关于android - 如何让动画与 Android 中的 TextToSpeech 话语同时播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687775/
我知道这不是 Stack Overflow 的正确问题类型(请原谅我),但我花了几个小时试图让 Discourse 在我的机器上运行。它以前可以工作,但我升级到 Ruby 2.0 和 Rails 4,
我是一名优秀的程序员,十分优秀!