Menangani output audio untuk kacamata audio dan kacamata tampilan menggunakan Text to Speech

Perangkat XR yang kompatibel
Panduan ini membantu Anda membangun pengalaman untuk jenis perangkat XR ini.
Kacamata Audio &
Tampilan

Salah satu cara Anda dapat berkomunikasi dengan pengguna adalah dengan menggunakan teknologi Text to Speech (TTS). TTS sudah terpasang di Android (tidak memerlukan library tambahan) dan berfungsi bahkan saat offline. Karakteristik ini menjadikan TTS ideal untuk menangani kondisi error dalam mode tanpa tampilan. Anda dapat mereferensikan fitur TTS menggunakan class TextToSpeech.

Membuat instance TextToSpeech

Sebaiknya buat instance class TextToSpeech pada metode onCreate aktivitas yang diproyeksikan sehingga tersedia selama masa aktif Activity:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    tts = TextToSpeech(this) { status ->
        if(status == TextToSpeech.SUCCESS) {
        // Initialization successful
        }else {
            // Initialization failed
        }
    }
    ...
}

Memberi tahu pengguna saat TTS dimulai

Untuk pengalaman tanpa tampilan (hanya audio), beri tahu pengguna bahwa aplikasi Anda berhasil diluncurkan dengan memberi tahu mereka dalam metode onStart:

override fun onStart() {
  super.onStart()

  tts?.speak("Welcome to Android XR Glasses!",
  TextToSpeech.QUEUE_FLUSH,
  null,
  "welcome_utterance")
  ...
}

Poin penting tentang kode

  • TextToSpeech.QUEUE_FLUSH menunjukkan bahwa teks harus segera diucapkan dan ucapan TTS lainnya harus dihentikan.
  • utteranceId, dalam hal ini "welcome_utterance", digunakan untuk mengidentifikasi kapan teks ini selesai diucapkan. Untuk mengetahui informasi selengkapnya, lihat UtteranceProgressListener.

Menghentikan TTS

Jika aplikasi Anda perlu menghentikan TTS, panggil metode stop:

// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...

Membersihkan resource TTS

Anda harus membersihkan resource saat aktivitas dihapus dengan memanggil metode shutdown dalam metode onDestroy aktivitas:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}