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

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

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