首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓-如何知道TalkBack是否正在说话以中断文语转换?

安卓-如何知道TalkBack是否正在说话以中断文语转换?
EN

Stack Overflow用户
提问于 2018-09-13 01:52:28
回答 1查看 692关注 0票数 4

我正在与安卓系统上的TextToSpeech合作,以说出一系列的文本。因为它是一个很大的字符串,所以我使用了一个新的线程。

问题是,当对讲语音辅助功能被启用时,它会停止阅读我的应用程序以说出设备的通知,当用户触摸屏幕时读取其他按钮,等等。

我需要知道对讲机什么时候会说话,所以我中断了我的线程,当对讲机结束宣布它是什么时,我的tts将能够继续阅读。

发生的情况是,我的tts读取了第1行、第2行、第3行(因此对讲说明了一些事情),而我的tts没有读取第4行、第5行... (...)。它只是在对讲后恢复到第50,60行,因为我的重复,也就是在线程中,一直在运行,而演讲者正在被对讲占用。

有没有人对此有任何指导/解决方案?

EN

回答 1

Stack Overflow用户

发布于 2020-05-07 14:36:29

您可以使用UtteranceProgressListener覆盖onStop方法。当使用talkback的用户做任何事情时,可以通过此方法通知您。顺便说一句,onStop不是一个抽象的方法,所以你应该重写自己。我希望你已经找到了:)

代码语言:javascript
运行
复制
textToSpeech.setOnUtteranceProgressListener(
        new UtteranceProgressListener() {

    @Override
    public void onStart(String utteranceId) {

    }

    @Override
    public void onDone(String utteranceId) {

    }

    @Override
    public void onStop(String utteranceId, boolean interrupted) {
        super.onStop(utteranceId, interrupted);
        yourCallback.stop();
    }

    @Override
    public void onError(String utteranceId) {

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

https://stackoverflow.com/questions/52300925

复制
相关文章

相似问题

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