Metin okuma özelliğini kullanarak sesli gözlükler ve ekranlı gözlükler için ses çıkışını yönetme

Uygun XR cihazlar
Bu kılavuz, bu tür XR cihazları için deneyimler geliştirmenize yardımcı olur.
Ses ve
Görüntü Arabirimli Gözlük

Kullanıcılarınızla iletişim kurmanın yollarından biri, metin okuma (TTS) teknolojisini kullanmaktır. TTS, Android'e yerleşiktir (ek kitaplık gerektirmez) ve çevrimdışıyken bile çalışır. Bu özellikler, TTS'yi ekransız modda hata koşullarını işlemek için ideal hale getirir. TextToSpeech sınıfını kullanarak TTS özelliklerine referans verebilirsiniz.

TextToSpeech'i örneklendirme

Activity'nin kullanım ömrü boyunca kullanılabilir olması için yansıtılan etkinliğinizin onCreate yönteminde TextToSpeech sınıfını örneklendirmenizi öneririz:

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

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

TTS başladığında kullanıcıyı bilgilendir

Ekranı olmayan (yalnızca sesli) deneyimlerde, onStart yönteminde kullanıcıya uygulamanızın başarıyla başlatıldığını bildirin:

override fun onStart() {
  super.onStart()

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

Kodla ilgili önemli noktalar

  • TextToSpeech.QUEUE_FLUSH, metnin hemen seslendirilmesi ve diğer tüm TTS ifadelerinin kesilmesi gerektiğini gösterir.
  • utteranceId (bu örnekte "welcome_utterance"), bu metnin okunmasının ne zaman bittiğini belirlemek için kullanılır. Daha fazla bilgi için UtteranceProgressListener sayfasını inceleyin.

TTS'yi kesme

Uygulamanızın TTS'yi kesintiye uğratması gerekirse stop yöntemini çağırın:

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

TTS kaynaklarını temizleme

Etkinliğiniz yok edildiğinde, etkinliğin onDestroy yönteminde shutdown yöntemini çağırarak kaynakları temizlemeniz gerekir:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}