Nicht in der Lage zu erkennen Fertigstellung von TTS - (callback -) android.
Bin ich die Entwicklung von android-Anwendung, in der ich bin mit text-to-speech-Konvertierung.Was ich brauche, wenn ich offen meine Anwendung text-to-speech-Konvertierung. Nach Abschluss dieses ich will, etwas zu tun.Mein code sieht wie
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();
}
}
}
Wenn ich öffne meine Anwendung text-to-speech funktioniert. Aber wie kann man erkennen, ob text-to-speech abgeschlossen ist oder nicht.Brauche Hilfe..... Danke.....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit API level 15 oder höher können Sie eine Fortschritts-listener auf Ihre
TextToSpeech
Referenz mitErhalten Sie Rückrufe Berichterstattung über die Fortschritte des TTS, darunter auch einen Rückruf wenn es fertig ist. Sehen http://developer.android.com/reference/android/speech/tts/TextToSpeech.html und http://developer.android.com/reference/android/speech/tts/UtteranceProgressListener.html
Ich jedoch feststellen, dass Sie bereits mit dem veralteten
OnUtteranceCompletedListener
. Erhalten Sie die Rückrufe aufonUtteranceCompleted()
? Das sollte auch funktionieren.int result = tts.setOnUtteranceCompletedListener(thi s);
um die Zuhörer. Überprüfen Sie den Wert desresult
variable. ERFOLG (0) oder FEHLER (-1) sollte wieder kommen. Auch, fügen Sie einige ProtokollierungonUtteranceCompleted()
um zu sehen, ob es tatsächlich dort ankommt. Überprüfen Sie auch die logcat für andere merkwürdige Fehler.Rufen Sie die setOnUtteranceCompletedListener innerhalb der onInit-Funktion des tts-Objekt.
Wenn Sie wollen, um änderungen an der Benutzeroberfläche auf den Anruf des onUtteranceCompleted-Funktion, fügen Sie den code in eine runOnUIThread Methode.
Und denken Sie daran, fügen Sie die Hashmap param Wert beim Aufruf der speak () - Funktion
Beispiel :
Hier ist ein code von hier, die Ihnen hilft, abwärts kompatibel, so dass Sie nicht haben, um den Gegner 15.