Eine Möglichkeit, mit Ihren Nutzern zu kommunizieren, ist die Verwendung der Text-to-Speech-Technologie (TTS). TTS ist in Android integriert (keine zusätzlichen Bibliotheken erforderlich) und funktioniert auch offline. Diese Eigenschaften machen TTS ideal für die Behandlung von Fehlerbedingungen im Modus ohne Display. Sie können mit der Klasse TextToSpeech auf TTS-Funktionen verweisen.
TextToSpeech instanziieren
Wir empfehlen, die Klasse TextToSpeech in der Methode onCreate der projizierten Aktivität zu instanziieren, damit sie während der Lebensdauer der Activity verfügbar ist:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tts = TextToSpeech(this) { status ->
if(status == TextToSpeech.SUCCESS) {
// Initialization successful
}else {
// Initialization failed
}
}
...
}
Nutzer benachrichtigen, wenn die Sprachausgabe gestartet wird
Bei Geräten ohne Display (nur Audio) solltest du den Nutzer in der Methode onStart darüber informieren, dass deine App erfolgreich gestartet wurde:
override fun onStart() {
super.onStart()
tts?.speak("Welcome to Android XR Glasses!",
TextToSpeech.QUEUE_FLUSH,
null,
"welcome_utterance")
...
}
Wichtige Punkte zum Code
TextToSpeech.QUEUE_FLUSHgibt an, dass der Text sofort gesprochen und jede andere TTS-Äußerung unterbrochen werden soll.- Der
utteranceId, in diesem Fall"welcome_utterance", wird verwendet, um zu erkennen, wann dieser Text fertig gesprochen wurde. Weitere Informationen finden Sie unterUtteranceProgressListener.
TTS unterbrechen
Wenn die Sprachausgabe in Ihrer App unterbrochen werden muss, rufen Sie die Methode stop auf:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
TTS-Ressourcen bereinigen
Sie sollten Ressourcen bereinigen, wenn Ihre Aktivität gelöscht wird. Rufen Sie dazu die Methode shutdown innerhalb der Methode onDestroy der Aktivität auf:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}