Один из способов общения с пользователями – технология синтеза речи (TTS). Функция TTS встроена в Android (дополнительные библиотеки не требуются) и работает даже в офлайн-режиме. Эти характеристики делают TTS идеальным
для обработки условий ошибок в режиме без дисплея. Вы можете ссылаться на функции TTS, используя класс TextToSpeech.
Создайте экземпляр TextToSpeech
Рекомендуем создать экземпляр класса TextToSpeech в методе onCreate проецируемого действия, чтобы он был доступен в течение всего времени существования Activity:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tts = TextToSpeech(this) { status ->
if(status == TextToSpeech.SUCCESS) {
// Initialization successful
}else {
// Initialization failed
}
}
...
}
Уведомлять пользователя о начале озвучивания текста
Если у устройства нет экрана, сообщите пользователю, что приложение запущено, в методе onStart:
override fun onStart() {
super.onStart()
tts?.speak("Welcome to Android XR Glasses!",
TextToSpeech.QUEUE_FLUSH,
null,
"welcome_utterance")
...
}
Важные сведения о коде
TextToSpeech.QUEUE_FLUSHуказывает, что текст должен быть озвучен немедленно, а любое другое озвучивание должно быть прервано.utteranceId, в данном случае"welcome_utterance", используется для определения того, когда этот текст закончит произноситься. Дополнительную информацию вы найдете вUtteranceProgressListener.
Прервать озвучивание текста
Если приложению нужно прервать озвучивание, вызовите метод stop:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
Очистка ресурсов TTS
Когда объект activity удаляется, необходимо освободить ресурсы, вызвав метод shutdown в методе onDestroy объекта activity:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}