JavascriptProva

martedì 2 agosto 2016

Aggiunta del TTS al CoachCall

Bene. Adesso ho messo tutto l'essenziale.
RIassumo i passaggi:
  1. Creazione del Service foreGround (ricordare di aggiungere startForeground / Bindaggio delle activities con startService in aggiunta al binding.
  2. Creazione di startTime e stopTime con i riferimenti dei buttons che richiamano queste funzioni dalle altre activities
  3. Creazione del listener personalizzato di AlarmOn, e di onTaskRemoved per la chiusura del Service.


Detto questo, ora si aggiungono le funzioni più specifiche...

Per CoachCall, bisogna aggiungere la sintesi vocale e la suoneria.

Metto la variabile pubblica:
 public TextToSpeech tts;
e aggiungo il codice per l'inizializzazione del TextToSpeech nel Service:
 @Override
 public void onCreate(){
  Intent intent=new Intent(this,MainActivity.class);
  PendingIntent pi=PendingIntent.getActivity(this, 0, intent, 0);
  Notification notification=new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.cornetta)
    .setContentTitle("CoachCall")
    .setContentText("Telefonate dal Coach")
    .setContentIntent(pi).build();
  startForeground(1,notification);
    
  tts=new TextToSpeech(this,new TextToSpeech.OnInitListener() {
   
   @Override
   public void onInit(int status) {
    if(status==TextToSpeech.SUCCESS){
     tts.setLanguage(Locale.ITALIAN);
    }
    
   }
  });


Quindi in Telefono vado al codice del pulsante bttRispondi e scrivo un codice per far pronunciare "qualcosa":
  bttRispondi.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    mService.tts.speak("Ciao, scemo",TextToSpeech.QUEUE_FLUSH,null);
    mService.startTime();
    finish();
    
   }
  });
E finora funziona.
Lo scopo successivo è attendere la fine del parlato.

Nessun commento:

Posta un commento