Obsługa wyjścia audio w przypadku okularów audio i okularów wyświetlających za pomocą funkcji zamiany tekstu na mowę

Odpowiednie urządzenia z XR
Te wskazówki pomogą Ci tworzyć treści na te typy urządzeń z XR.
Okulary audio i z wyświetlaczem

Jednym ze sposobów komunikowania się z użytkownikami jest technologia zamiany tekstu na mowę (TTS). Funkcja TTS jest wbudowana w Androida (nie wymaga dodatkowych bibliotek) i działa nawet offline. Te cechy sprawiają, że TTS idealnie nadaje się do obsługi błędów w trybie bez wyświetlacza. Do funkcji TTS możesz odwoływać się za pomocą klasy TextToSpeech.

Utworzenie instancji TextToSpeech

Zalecamy utworzenie instancji klasy TextToSpeech w metodzie onCreate wyświetlanej aktywności, aby była dostępna przez cały czas działania Activity:

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

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

Powiadamianie użytkownika o rozpoczęciu zamiany tekstu na mowę

W przypadku urządzeń bez wyświetlacza (tylko dźwięk) poinformuj użytkownika, że aplikacja została uruchomiona, za pomocą metody onStart:

override fun onStart() {
  super.onStart()

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

Najważniejsze informacje o kodzie

  • TextToSpeech.QUEUE_FLUSH wskazuje, że tekst powinien zostać odczytany natychmiast, a wszelkie inne wypowiedzi TTS powinny zostać przerwane.
  • utteranceId, w tym przypadku "welcome_utterance", służy do określenia, kiedy tekst został wypowiedziany. Więcej informacji znajdziesz w UtteranceProgressListener.

Przerwij TTS

Jeśli aplikacja musi przerwać zamianę tekstu na mowę, wywołaj metodę stop:

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

Czyszczenie zasobów TTS

Gdy aktywność zostanie zniszczona, należy wyczyścić zasoby, wywołując metodę shutdown w metodzie onDestroy aktywności:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}