Uno dei modi per comunicare con gli utenti è utilizzare la tecnologia di sintesi vocale (TTS). TTS è integrato 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à di sintesi vocale utilizzando la classe TextToSpeech.
Instanzia TextToSpeech
Ti consigliamo di creare un'istanza della classe TextToSpeech nel metodo onCreate dell'attività
proiettata in modo che sia disponibile per l'intera durata
dell'Activity:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tts = TextToSpeech(this) { status ->
if(status == TextToSpeech.SUCCESS) {
// Initialization successful
}else {
// Initialization failed
}
}
...
}
Notificare all'utente l'avvio della sintesi vocale
Per le esperienze senza display (solo audio), comunica all'utente che l'app
è stata avviata correttamente notificandolo 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 letto immediatamente e qualsiasi altra espressione TTS deve essere interrotta.utteranceId, in questo caso"welcome_utterance", viene utilizzato per identificare quando la lettura di questo testo è terminata. Per saperne di più, consulta laUtteranceProgressListener.
Interrompi la sintesi vocale
Se la tua app deve interrompere la sintesi vocale, chiama il metodo stop:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
Libera spazio dalle risorse TTS
Devi liberare spazio dalle risorse quando la tua attività viene eliminata chiamando il metodo
shutdown all'interno del metodo onDestroy dell'attività:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}