Jednym ze sposobów komunikowania się z użytkownikami jest używanie technologii zamiany tekstu na mowę (TTS). TTS jest wbudowana w Androida (nie wymaga dodatkowych bibliotek) i działa nawet offline. Dzięki tym cechom TTS idealnie nadaje się do obsługi błędów w trybie bez wyświetlacza. Do funkcji TTS
możesz się odwoływać za pomocą klasy TextToSpeech.
Tworzenie instancji TextToSpeech
Zalecamy utworzenie instancji klasy TextToSpeech w metodzie onCreate przewidywanej aktywności projected
activity's, aby była ona dostępna przez cały czas trwania
of the 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 uruchomieniu TTS
W przypadku aplikacji bez wyświetlacza (tylko z dźwiękiem) poinformuj użytkownika o pomyślnym uruchomieniu aplikacji
pomyślnie, wysyłając powiadomienie w metodzie 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_FLUSHoznacza, że tekst powinien zostać odczytany natychmiast, a wszelkie inne wypowiedzi TTS powinny zostać przerwane.- W tym przypadku
utteranceId, czyli"welcome_utterance", służy do określenia kiedy tekst zostanie odczytany. Więcej informacji znajdziesz w artykuleUtteranceProgressListener.
Przerywanie TTS
Jeśli aplikacja musi przerwać TTS, wywołaj metodę stop:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
Zwalnianie miejsca zajmowanego przez zasoby TTS
Gdy aktywność zostanie zniszczona, należy zwolnić miejsce w zasobach, wywołując metodę
shutdown w metodzie onDestroy aktywności:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}