gpt4 book ai didi

java - TextToSpeech 停止()不工作

转载 作者:行者123 更新时间:2023-11-29 02:33:30 28 4
gpt4 key购买 nike

我正在尝试停止 TextToSpeech ,当按下后退按钮时。但是即使我关闭我的应用程序,语音也不会停止。只有当我清除缓存时,语音才会停止。我该如何解决这个问题?请帮助我理解。

private boolean mShouldSpeak = true;
TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cat);

tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
tts.setEngineByPackageName(enginePackageName);
tts.setLanguage(Locale.getDefault());
tts.setPitch(0);
tts.setSpeechRate(1);
speak();
}
}
});
}
private void speak() {

if (mShouldSpeak == true)
{
tts.speak("Автор: " +getResources().getString(R.string.catAuthor), TextToSpeech.QUEUE_ADD, null);
tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
tts.speak(getResources().getString(R.string.catName), TextToSpeech.QUEUE_ADD, null);
tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
tts.speak(getResources().getString(R.string.catDesc), TextToSpeech.QUEUE_ADD, null);
tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
}

}
@Override
protected void onDestroy() {
if (tts != null)
{
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
public void onBackPressed() {

onDestroy();
super.onBackPressed();

}

最佳答案

除了评论之外,您还需要确保:

tts.setEngineByPackageName(enginePackageName)

包含安装在设备上的 Text to Speech 引擎的有效包名称,例如 com.google.android.ttscom.svox.pico .

要检查有关已安装引擎的信息,请参阅我的回答 here

不应用此参数将绑定(bind)在 Text to Speech 设置中选择为设备默认值的引擎。

关于java - TextToSpeech 停止()不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48377561/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com