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_FLUSHwskazuje, ż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 wUtteranceProgressListener.
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()
}