首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让OnUtteranceCompleted被调用?

如何让OnUtteranceCompleted被调用?
EN

Stack Overflow用户
提问于 2011-09-27 22:05:26
回答 2查看 1.5K关注 0票数 0

我一直在网上冲浪(阅读google/ android开发人员文档,阅读stackoverflow的类似问题,阅读书籍),非常关注示例。文本到语音“说”的效果很好。但我就是不能让OnUtteranceCompleted被调用。

它一定很简单,以至于我看不到答案。请帮帮我!下面是我在几次交互后的代码。

或者有人可以提供一个完整的源代码(不是代码片段),看看它是否能在我的模拟器/实际设备上工作?

代码语言:javascript
复制
public class testActivity extends Activity implements OnInitListener, OnUtteranceCompletedListener {
...

protected void checkTtS() {
    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, TTS_DATA_CHECK_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
....
   if (requestCode == TTS_DATA_CHECK_CODE) {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
         // success, create the TTS instance
         mTts = new TextToSpeech(this, this);
 ....

 // Implements TextToSpeech.OnInitListener.
 public void onInit(int status) {

    // status can be either TextToSpeech.SUCCESS or TextToSpeech.ERROR.
    if (status == TextToSpeech.SUCCESS) {
        int result = mTts.setLanguage(Locale.FRANCE);
        result = mTts.setOnUtteranceCompletedListener(this);
        HashMap<String, String> params = new HashMap<String, String>();
        params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");
        mTts.speak("Text to Speak",TextToSpeech.QUEUE_FLUSH, params);
 ....

 public void onUtteranceCompleted(String uttId) {
    Toast.makeText(getBaseContext(), "onutterancecompleted", Toast.LENGTH_SHORT).show();
 }
EN

回答 2

Stack Overflow用户

发布于 2011-09-27 22:20:31

在setOnUtteranceCompletedListener调用之后,您是否检查了int result的值。

代码语言:javascript
复制
if(result == TextToSpeech.ERROR)

则未设置话语监听器

票数 0
EN

Stack Overflow用户

发布于 2011-09-27 22:22:03

您的代码可能应该如下所示:

代码语言:javascript
复制
public void onUtteranceCompleted(String uttId) {
    if (uttId.equals("stringId")) {
        Toast.makeText(getBaseContext(), "onutterancecompleted", Toast.LENGTH_SHORT).show();
    }
 }

你也应该看看this的文章,里面清楚地描述了onUtteranceCompleted是如何工作的。希望这能有所帮助。

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

https://stackoverflow.com/questions/7570494

复制
相关文章

相似问题

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