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 aident à créer des expériences pour ces types d'appareils XR.
Lunettes audio et
d'affichage

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

Instancier TextToSpeech

Nous vous recommandons d'instancier la classe TextToSpeech dans la méthode onCreate de votre activité projetée afin qu'elle soit disponible pendant toute la durée de vie de la 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 TTS démarre

Pour les expériences sans affichage (audio uniquement), informez l'utilisateur que votre application a bien été lancée en l'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 essentiels concernant le code

  • TextToSpeech.QUEUE_FLUSH indique que le texte doit être prononcé immédiatement et que tout autre énoncé TTS doit être interrompu.
  • Le utteranceId, dans ce cas "welcome_utterance", est utilisé pour identifier le moment où ce texte est terminé. Pour en savoir plus, consultez le UtteranceProgressListener.

Interrompre la TTS

Si votre application doit interrompre la TTS, appelez la stop méthode :

// 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 shutdown méthode dans la onDestroy méthode de l'activité :

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}