אחת הדרכים לתקשר עם המשתמשים היא באמצעות טכנולוגיית המרת טקסט לדיבור (TTS). התכונה TTS מובנית ב-Android (ולא דורשת ספריות נוספות) והיא פועלת גם במצב אופליין. המאפיינים האלה הופכים את TTS לאידיאלי לטיפול בתנאי שגיאה במצב ללא מסך. אפשר להפנות לתכונות של TTS באמצעות המחלקה TextToSpeech.
Instantiate 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
}
}
...
}
הודעה למשתמש כשמתחילים להשתמש ב-TTS
במקרים של חוויות ללא מסך (שמע בלבד), צריך להודיע למשתמש שהאפליקציה הופעלה בהצלחה באמצעות השיטה onStart:
override fun onStart() {
super.onStart()
tts?.speak("Welcome to Android XR Glasses!",
TextToSpeech.QUEUE_FLUSH,
null,
"welcome_utterance")
...
}
מידע חשוב על הקוד
-
TextToSpeech.QUEUE_FLUSHמציין שהטקסט צריך להיות מוקרא באופן מיידי, וכל אמירה אחרת של TTS צריכה להיפסק. - התו
utteranceId, במקרה הזה"welcome_utterance", משמש לזיהוי המקום שבו מסתיים הדיבור של הטקסט הזה. מידע נוסף זמין במאמר בנושאUtteranceProgressListener.
הפסקת ה-TTS
אם האפליקציה צריכה להפריע ל-TTS, צריך להפעיל את השיטה stop:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
פינוי משאבי TTS
כדי לנקות את המשאבים כשפעילות מושמדת, צריך להפעיל את השיטה shutdown בתוך השיטה onDestroy של הפעילות:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}