您可以使用文字轉語音 (TTS) 技術與使用者溝通。Android 內建 TTS (不需要額外程式庫),即使離線也能使用。因此 TTS 非常適合處理無顯示模式的錯誤狀況。您可以使用 TextToSpeech 類別參照 TTS 功能。
例項化 TextToSpeech
建議您在 AI 眼鏡活動的 onCreate() 方法中,建立 TextToSpeech 類別的例項,以便在 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 資源
活動刪除時,您應呼叫活動 onDestroy() 方法中的 shutdown() 方法,以清除資源:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}