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