אחת הדרכים לתקשר עם המשתמשים היא באמצעות טכנולוגיית המרת טקסט לדיבור (TTS). התכונה TTS מובנית ב-Android (ולא נדרשות ספריות נוספות) והיא פועלת גם במצב אופליין. המאפיינים האלה הופכים את TTS לאידיאלי לטיפול בתנאי שגיאה במצב ללא תצוגה. אפשר להפנות לתכונות של TTS באמצעות המחלקה TextToSpeech.
יצירת מופע של TextToSpeech
מומלץ ליצור מופע של המחלקה TextToSpeech בשיטה onCreate() של הפעילות במשקפי ה-AI, כדי שהיא תהיה זמינה למשך משך החיים של 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()
}