JavascriptProva

sabato 30 luglio 2016

Aggiunta di OnUtteranceListener con il TextToSpeech globale statico.

E ho inserito anche il detector della fine del parlato.
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