gpt4 book ai didi

android - 无法检测到 TTS(回调)android 的完成。

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:37 32 4
gpt4 key购买 nike

我正在开发使用文本到语音转换的 Android 应用程序。当我打开我的应用程序运行文本到语音转换时,我需要什么。完成后我想做一些事情。我的代码看起来像

public class Mainactivity extends Activity implements OnInitListener, OnUtteranceCompletedListener{
private static int REQ_CODE = 1;
private TextToSpeech tts = null;
private boolean ttsIsInit = false;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

startTextToSpeech();
}

private void startTextToSpeech() {
Intent intent = new Intent(Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, REQ_CODE);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQ_CODE) {
if (resultCode == Engine.CHECK_VOICE_DATA_PASS) {
tts = new TextToSpeech(this, this);
}
else {
Intent installVoice = new Intent(Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installVoice);
}
}
}

public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
ttsIsInit = true;
int result = tts.setOnUtteranceCompletedListener(this);
if (tts.isLanguageAvailable(Locale.ENGLISH) >= 0)
tts.setLanguage(Locale.ENGLISH);
tts.setPitch(5.0f);
tts.setSpeechRate(1.0f);

HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "SOME MESSAGE");
tts.speak("hi how are you?", TextToSpeech.QUEUE_FLUSH, myHashAlarm);
}
}

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

@Override
public void onUtteranceCompleted(String uttId) {
Toast.makeText(Mainactivity.this,"done", Toast.LENGTH_LONG).show();
if (uttId.equalsIgnoreCase("done")) {
Toast.makeText(Mainactivity.this,"inside done", Toast.LENGTH_LONG).show();
}
}
}

当我打开我的应用程序时,文本到语音工作正常。但是如何检测文本到语音是否完成。需要帮助.....谢谢.....

最佳答案

如果您使用的是 API 级别 15 或更高版本,您可以使用以下方法在您的 TextToSpeech 引用上设置进度监听器

setOnUtteranceProgressListener(UtteranceProgressListener listener)

您将收到报告 TTS 进度的回调,包括完成时的回调。参见 http://developer.android.com/reference/android/speech/tts/TextToSpeech.htmlhttp://developer.android.com/reference/android/speech/tts/UtteranceProgressListener.html

但是,我注意到您已经在使用已弃用的 OnUtteranceCompletedListener。您是否在 onUtteranceCompleted() 上收到回调?这也应该有效。

关于android - 无法检测到 TTS(回调)android 的完成。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409177/

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