Ho creato la variabile globale onUtteranceCompletedListener:
public class Global { public static TextToSpeech tts; public static OnUtteranceCompletedListener onUtteranceCompletedListener; }Ho inizializzato questa variabile di tipo listener sempre in MainActivity:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("MAIN", "ONCREATE"); Global.tts=new TextToSpeech(getApplicationContext(),new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if(status==TextToSpeech.SUCCESS){ Global.tts.setLanguage(Locale.ITALIAN); } } }); Global.onUtteranceCompletedListener=new TextToSpeech.OnUtteranceCompletedListener(){ @Override public void onUtteranceCompleted(String utteranceId) { Log.d("ONUTTERANCE", "MESSAGGIO"); } };e poi in Form, dove c'è la vocalizzazione:
Global.tts.setOnUtteranceCompletedListener(Global.onUtteranceCompletedListener); HashMap map=new HashMap(); map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "id"); Global.tts.speak("Ciao, bello, stupido, cretino, aspettiamo che passi il tempo", TextToSpeech.QUEUE_FLUSH, map);E ho testato la funzione con il messaggio che arriva dopo che la voce ha terminato di parlare:
01-01 04:17:36.808: D/ONUTTERANCE(25944): MESSAGGIO
Nessun commento:
Posta un commento