Uno dei modi in cui puoi comunicare con i tuoi utenti è utilizzare la tecnologia di sintesi vocale (TTS). La funzionalità TTS è integrata in Android (non richiede librerie aggiuntive) e funziona anche offline. Queste caratteristiche rendono la sintesi vocale ideale per la gestione delle condizioni di errore in modalità senza display. Puoi fare riferimento alle funzionalità TTS utilizzando la classe TextToSpeech.
Crea un'istanza di TextToSpeech
Ti consigliamo di creare un'istanza della classe TextToSpeech nel metodo onCreate dell'attività proiettata in modo che sia disponibile per tutta la durata di Activity:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tts = TextToSpeech(this) { status ->
if(status == TextToSpeech.SUCCESS) {
// Initialization successful
}else {
// Initialization failed
}
}
...
}
Invia una notifica all'utente quando inizia la sintesi vocale
Per le esperienze senza display (solo audio), comunica all'utente che l'app è stata avviata correttamente inviandogli una notifica nel metodo onStart:
override fun onStart() {
super.onStart()
tts?.speak("Welcome to Android XR Glasses!",
TextToSpeech.QUEUE_FLUSH,
null,
"welcome_utterance")
...
}
Punti chiave sul codice
TextToSpeech.QUEUE_FLUSHindica che il testo deve essere pronunciato immediatamente e che qualsiasi altro enunciato TTS deve essere interrotto.utteranceId, in questo caso"welcome_utterance", viene utilizzato per identificare quando la lettura di questo testo è terminata. Per saperne di più, consulta laUtteranceProgressListener.
Interrompi TTS
Se l'app deve interrompere la sintesi vocale, chiama il metodo stop:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
Esegui la pulizia delle risorse TTS
Quando l'attività viene eliminata, devi eseguire la pulizia delle risorse chiamando il metodo shutdown all'interno del metodo onDestroy dell'attività:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}