วิธีหนึ่งในการสื่อสารกับผู้ใช้คือการใช้เทคโนโลยี Text-to-Speech (TTS) TTS มีให้ใช้งานใน Android (ไม่จำเป็นต้องใช้ไลบรารีเพิ่มเติม) และทำงานได้แม้ในขณะออฟไลน์ ลักษณะเหล่านี้ทำให้ TTS เหมาะอย่างยิ่งสำหรับการจัดการกับเงื่อนไขข้อผิดพลาดในโหมดที่ไม่มีการแสดงผล คุณสามารถอ้างอิงฟีเจอร์ TTS
ได้โดยใช้คลาส TextToSpeech
สร้างอินสแตนซ์ TextToSpeech
เราขอแนะนำให้สร้างอินสแตนซ์คลาส TextToSpeech ในเมธอด onCreate ของกิจกรรมที่คาดการณ์ไว้ projected
activity's เพื่อให้คลาสนี้พร้อมใช้งานตลอดอายุการใช้งาน
ของ 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()
}