Guest hardrocky Posted February 24, 2013 Share Posted February 24, 2013 Bonjour à tous. Dans le but de savoir quand mon énonciation lors d'un TTS est finie, j'ai écrit cela à la fin du onInit en suivant la doc officielle. tts.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override public void onDone(String utteranceId) { Toast.makeText(getApplicationContext(), "Done", Toast.LENGTH_LONG).show(); } @Override public void onerror(String utteranceId) { } @Override public void onstart(String utteranceId) { Toast.makeText(getApplicationContext(), "Start", Toast.LENGTH_LONG).show(); } }); Problème, ca ne marche pas. Une idée ? Merci d'avance Link to comment Share on other sites More sharing options...
pauland Posted February 24, 2013 Share Posted February 24, 2013 2 choses: LA première, comme je te l'ai dit sur Google+, tu dois préciser un paramètre lors de l'appel à speak: public void say(String text2say) { HashMap<String, String> hm = new HashMap<String, String>(); hm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "toto"); this.talker.speak(text2say, TextToSpeech.QUEUE_ADD, hm); } Sans ça, le listener renseigné par setOnUtteranceProgressListener ne sera jamais appelé. Ensuite, dans ton init du tts, tu renseignes comme tu l'a fais un listener. Par contre, ce listener ne s'execute pas dans une même thread, tu devras donc crer un runnable, que tu run sur le thread de l'ui, comme ceci: @Override public void onInit(int status) { this.talker.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override public void onstart(String utteranceId) { } @Override public void onerror(String utteranceId) { } @Override public void onDone(final String utteranceId) { Runnable run = new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "Le speaker " + utteranceId + " a fini de parler", Toast.LENGTH_LONG).show(); } }; MainActivity.this.runOnUiThread(run); } }); this.say("Hello World"); } Link to comment Share on other sites More sharing options...
Guest hardrocky Posted February 24, 2013 Share Posted February 24, 2013 Merci, ca marche super, je te réponds sur Twitter. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.