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