您可以通过多种方式与用户沟通,其中一种方式是使用文本转语音 (TTS) 技术。TTS 内置于 Android 中(无需其他库),即使在离线状态下也能正常运行。这些特性使得 TTS 非常适合在无显示屏模式下处理错误情况。您可以使用 TextToSpeech 类引用 TTS
功能。
实例化 TextToSpeech
我们建议您在投影
activity's 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 资源
当 activity 被销毁时,您应通过在 activity 的
shutdown方法中调用onDestroy方法来清理资源:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}