首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:用于将文本更改为语音设置的侦听器

Android:用于将文本更改为语音设置的侦听器
EN

Stack Overflow用户
提问于 2015-09-25 11:00:19
回答 1查看 331关注 0票数 0

您好,使用文本到语音。

我的目标是API 16,所以我启动了在设备上启动TTS设置的意图。

代码语言:javascript
复制
public Intent launchTTSSettings(){
        Intent TTSSettings = new Intent();
        TTSSettings.setAction("com.android.settings.TTS_SETTINGS"); 
        TTSSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        return TTSSettings;
    }

我的应用程序在后台。

我更改了一些TTS设置

我的应用程序回到前台,我注意到我的应用程序仍然使用旧的TTS设置,除非我再次关闭和打开应用程序。

我想听听TTS设置的任何变化--也许是广播接收器,但我找不到任何与此相关的东西。

那么,是否有任何方法可以优雅地响应TTS设置中的更改?

我想我可以销毁我的TTS实例并重新制作它,但是问题的根源在于我如何知道一个设置是否真的被更改了。

谢谢你的阅读

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-25 11:31:47

提出了一个不太好的解决方案,但它似乎是随着变化而起作用的。

请注意,我还没有引入进度对话框,直到onInit调用,但是下面是逻辑

因此,我在这里启动我的文本到语音设置意图,并设置一个标志为真。

代码语言:javascript
复制
startActivity(mTextToSpeechHelper.launchTTSSettings());
mTTSSettingsHasChanged = true;

然后进入简历

代码语言:javascript
复制
      @Override
        protected void onResume() {
            super.onResume();
            if(mTTSSettingsHasChanged){
            mTTSSettingsHasChanged = false;
            mTextToSpeechHelper.destroy();
            mTextToSpeechHelper = null;
            mTextToSpeechHelper = new TextToSpeechHelper();
            }
        }

请注意,破坏是这样做的,因为我的TTS内容位于帮助器类中。

代码语言:javascript
复制
  public void destroy(){
        if(mTextToSpeech != null){
            mTextToSpeech.stop();
            mTextToSpeech.shutdown();
        }
    }

不好的是,用户可以进入设置,但不能更改旧实例中会出现的任何可能被销毁的内容,而新的实例则是没有任何生产理由的。

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

https://stackoverflow.com/questions/32780693

复制
相关文章

相似问题

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