首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextToSpeech不要放弃onTouch开发方法

TextToSpeech不要放弃onTouch开发方法
EN

Stack Overflow用户
提问于 2015-04-07 18:17:35
回答 1查看 62关注 0票数 0

当我创建一个活动时,我尝试使用texttospeech,但是只有当我触摸视图时,onTouch调用了它的talk,下面是代码:

@重载受保护的void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.activity_d);tts =新TextToSpeech(this,this);tts.setLanguage(Locale.US);tts.speak(" Check ",TextToSpeech.QUEUE_FLUSH,null);d= (LinearLayout) findViewById(R.id.d_layout);D.setOnTouchListener(新的View.OnTouchListener() {@覆盖公共布尔值onTouch(View,MotionEvent事件)){tts.speak(“检查检查”,TextToSpeech.QUEUE_FLUSH,null);返回false;}};}

只有当我触摸它的say check check,但当我开始活动时,它没有说check check,为什么和如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2015-04-07 19:33:34

问题是在初始化speak()对象之前调用TextToSpeech。您需要侦听传递给TextToSpeech构造函数的侦听器的onInit()调用(参见此处:http://developer.android.com/reference/android/speech/tts/TextToSpeech.OnInitListener.html)。

在语音引擎已经准备就绪的情况下,视图触摸最有可能发生得很晚。更具体地说,我怀疑事情发生的顺序如下:

  1. tts = new TextToSpeech(this,this)
  2. tts.speak("Check Check", TextToSpeech.QUEUE_FLUSH, null); (这不起作用)
  3. (时间流逝)
  4. onInit()将被调用,指示TextToSpeech对象已准备就绪。
  5. (时间流逝)
  6. 用户触摸布局并调用tts.speak("Check Check Check", TextToSpeech.QUEUE_FLUSH, null);。(这项工程)

如您所见,只有在speak()调用之后出现的onInit()调用才能实际工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29498404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档