【问题标题】:Text-To-Speech STOP Issue文字转语音停止问题
【发布时间】:2017-06-21 10:51:08
【问题描述】:

我有一项活动,其中不断更新屏幕上的显示内容以及将文本更新为语音。这里的问题是当 UI 更新时,如果我按下主页按钮,那么文本到语音也不会停止。它连续运行。我曾尝试在pause()destroy() 中编写stop()shutdown(),但仍然无法正常工作。谁能告诉我如何阻止它?

请帮助我。

非常感谢。

【问题讨论】:

    标签: android text-to-speech


    【解决方案1】:

    如果不查看您的代码很难判断您做错了什么,但您应该能够在您的onPause 中调用TextToSpeech.stop()TextToSpeech.shutdown() 并使其正常工作。停止可能由于多种原因而失败,如果确实如此,那么您就很不走运了。这对我来说始终适用于 6 种不同型号的 Android 设备(mTts 是我的 TextToSpeech 实例):

    @Override
        protected void onStop()
        {
            super.onStop();
    
            if(mTts != null){
                mTts.shutdown();
            }       
        }
    

    【讨论】:

    • 我也试过了,但没用。我已经在 onStop() 中关闭 mTts 并尝试过,onPause() 并尝试过,并且在 onDestroy() 中也尝试过
    • 非常感谢...现在这对我有用...在我尝试使用许多 tts 对象之前,这就是它不起作用的原因。如果我正在处理单个 tts 对象,那么它的工作绝对正常
    【解决方案2】:
    @Override
    public void onDestroy() {
        if (tts != null) {
            tts.stop();
            tts.shutdown();
    
        }
        super.onDestroy();
    }
    

    (试试这个代码,它对我有用)

    【讨论】:

      【解决方案3】:

      据我所知,TTS SDK 没有任何暂停功能。但是您可以使用synthesizeToFile() 创建一个包含 TTS 输出的音频文件。然后,您将使用 MediaPlayer 对象来播放、暂停和停止播放文件。根据文本字符串的长度,生成音频可能需要更长的时间,因为synthesizeToFile() 函数必须先完成整个文件才能播放它,但这种延迟对于大多数应用程序来说应该是可以接受的。

      【讨论】:

      • 它的不同之处在于再次存储它并再次检索它是一种浪费......我不想这样
      • 你确定吗,因为那里有很多 tts 应用程序,我不明白为什么 stop() 或 shutdown() 不能正常工作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多