Gérer la sortie audio pour les lunettes audio et les lunettes connectées à l'aide de la synthèse vocale

Appareils XR concernés
Ces conseils vous aideront à créer des expériences pour ces types d'appareils XR.
Lunettes audio et
avec affichage

Vous pouvez communiquer avec vos utilisateurs à l'aide de la technologie de synthèse vocale (TTS, Text-to-Speech). La synthèse vocale est intégrée à Android (aucune bibliothèque supplémentaire n'est requise) et fonctionne même hors connexion. Ces caractéristiques font de TTS la solution idéale pour gérer les conditions d'erreur en mode sans affichage. Vous pouvez référencer les fonctionnalités TTS à l'aide de la classe TextToSpeech.

Instancier TextToSpeech

Nous vous recommandons d'instancier la classe TextToSpeech sur la méthode onCreate de votre activité projetée afin qu'elle soit disponible pendant toute la durée de vie de Activity :

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    tts = TextToSpeech(this) { status ->
        if(status == TextToSpeech.SUCCESS) {
        // Initialization successful
        }else {
            // Initialization failed
        }
    }
    ...
}

Informer l'utilisateur lorsque la synthèse vocale démarre

Pour les expériences sans écran (audio uniquement), informez l'utilisateur que votre application a bien été lancée en l'en avertissant dans la méthode onStart :

override fun onStart() {
  super.onStart()

  tts?.speak("Welcome to Android XR Glasses!",
  TextToSpeech.QUEUE_FLUSH,
  null,
  "welcome_utterance")
  ...
}

Points clés concernant le code

  • TextToSpeech.QUEUE_FLUSH indique que le texte doit être énoncé immédiatement et que tout autre énoncé TTS doit être interrompu.
  • Le utteranceId, dans ce cas "welcome_utterance", permet d'identifier quand la lecture de ce texte est terminée. Pour plus d'informations, consultez la page UtteranceProgressListener.

Interrompre la synthèse vocale

Si votre application doit interrompre la synthèse vocale, appelez la méthode stop :

// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...

Nettoyer les ressources TTS

Vous devez nettoyer les ressources lorsque votre activité est détruite en appelant la méthode shutdown dans la méthode onDestroy de l'activité :

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}