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 w trybie offline. Dzięki tym cechom funkcja 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.
Utwórz instancję TextToSpeech
Zalecamy utworzenie instancji klasy TextToSpeech w metodzie onCreate() aktywności okularów AI, aby była dostępna przez cały okres istnienia 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 odczytywania tekstu
W przypadku urządzeń bez wyświetlacza (tylko dźwięk) poinformuj użytkownika o tym, że aplikacja została uruchomiona, wywołując metodę 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 wszystkie inne wypowiedzi TTS powinny zostać przerwane.- Symbol
utteranceId, w tym przypadku"welcome_utterance", służy do określania, kiedy tekst przestaje być odczytywany. Więcej informacji znajdziesz w sekcjiUtteranceProgressListener.
Przerwij TTS
Jeśli aplikacja musi przerwać odczytywanie tekstu, wywołaj metodę stop():
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
Usuwanie 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()
}