首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果收到的onUtteranceCompleted()太长,则会丢失

如果收到的onUtteranceCompleted()太长,则会丢失
EN

Stack Overflow用户
提问于 2011-07-29 01:28:20
回答 2查看 721关注 0票数 7

我刚刚在Android的TTS引擎中观察到了一个“未记录的异常”:如果要说的文本太长(超过4K个字符),那么针对该特定发声的onUtteranceCompleted()将永远不会到达……

还有没有人见过这个?

这是已知的错误还是限制?

可以做些什么来解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-14 00:23:04

我没有意识到这个限制,因为我更喜欢较小的语音块(如果暂停或活动暂停时很有用)。

当您调用speak时,可以使用queueMode: TextToSpeech.QUEUE_ADD将新话语添加到队列的末尾

测试以确保句子听起来没有什么不同,但我认为只要在截止长度后自动解析下一个句子(如果需要的话)就可以了。

票数 2
EN

Stack Overflow用户

发布于 2012-08-29 22:16:51

我不确定这对您的情况是否有帮助,但在类似的情况下,我使用了一个匿名广播接收器,并为TextToSpeech.ACTION_TTS_QUEUE_PROCESSING_COMPLETED提供了一个IntentFilter,如下所示

代码语言:javascript
复制
  filter = new IntentFilter(TextToSpeech.ACTION_TTS_QUEUE_PROCESSING_COMPLETED);
receiver = new BroadcastReceiver(){

        public void onReceive(Context p1, Intent p2)
        {
            if (p2.getAction().equals(TextToSpeech.ACTION_TTS_QUEUE_PROCESSING_COMPLETED) && tts != null)
            {
            //
                //code here
            }
        }
    };
context.registerReceiver(receiver, filter);
    tts = new TextToSpeech(context, this);

希望这能在某个时候对某些人有所帮助

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

https://stackoverflow.com/questions/6863107

复制
相关文章

相似问题

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