【发布时间】:2017-06-21 10:51:08
【问题描述】:
我有一项活动,其中不断更新屏幕上的显示内容以及将文本更新为语音。这里的问题是当 UI 更新时,如果我按下主页按钮,那么文本到语音也不会停止。它连续运行。我曾尝试在pause() 和destroy() 中编写stop() 和shutdown(),但仍然无法正常工作。谁能告诉我如何阻止它?
请帮助我。
非常感谢。
【问题讨论】:
我有一项活动,其中不断更新屏幕上的显示内容以及将文本更新为语音。这里的问题是当 UI 更新时,如果我按下主页按钮,那么文本到语音也不会停止。它连续运行。我曾尝试在pause() 和destroy() 中编写stop() 和shutdown(),但仍然无法正常工作。谁能告诉我如何阻止它?
请帮助我。
非常感谢。
【问题讨论】:
如果不查看您的代码很难判断您做错了什么,但您应该能够在您的onPause 中调用TextToSpeech.stop() 或TextToSpeech.shutdown() 并使其正常工作。停止可能由于多种原因而失败,如果确实如此,那么您就很不走运了。这对我来说始终适用于 6 种不同型号的 Android 设备(mTts 是我的 TextToSpeech 实例):
@Override
protected void onStop()
{
super.onStop();
if(mTts != null){
mTts.shutdown();
}
}
【讨论】:
@Override
public void onDestroy() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
(试试这个代码,它对我有用)
【讨论】:
据我所知,TTS SDK 没有任何暂停功能。但是您可以使用synthesizeToFile() 创建一个包含 TTS 输出的音频文件。然后,您将使用 MediaPlayer 对象来播放、暂停和停止播放文件。根据文本字符串的长度,生成音频可能需要更长的时间,因为synthesizeToFile() 函数必须先完成整个文件才能播放它,但这种延迟对于大多数应用程序来说应该是可以接受的。
【讨论】: