จัดการเอาต์พุตเสียงสำหรับแว่นตาเสียงและแว่นตาแสดงผลโดยใช้การอ่านออกเสียงข้อความ

อุปกรณ์ XR ที่รองรับ
คำแนะนำนี้จะช่วยคุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทนี้
แว่นตาที่มีจอแสดงผล
และเสียง

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