วิธีหนึ่งที่คุณสามารถสื่อสารกับผู้ใช้ได้คือการใช้เทคโนโลยีการอ่านออกเสียงข้อความ (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
}
}
...
}
แจ้งเตือนผู้ใช้เมื่อ 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()
}