diff --git a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt index 5616e66..57a803c 100644 --- a/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt +++ b/app/src/main/java/com/example/lzwcai_terminal_temi/MainActivity.kt @@ -102,6 +102,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG private var autoRechargeJob: Job? = null private var latestYaw: Float? = null private var receptionAnchorYaw: Float? = null + private var isTtsSpeaking: Boolean = false private var pendingReceptionReturnWorkflow: Boolean = false private var lastWorkflowConfigRefreshAt: Long = 0L private lateinit var telemetryManager: TelemetryManager @@ -340,6 +341,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG connectionCoordinator.handleTtsStatusChange(ttsRequest) when (ttsRequest.status) { TtsRequest.Status.STARTED -> { + isTtsSpeaking = true Log.i("MainActivity", "TTS started") binding.animatedEmojiView.currentExpression = AnimatedEmojiView.Expression.TALKING liveKitManager?.setTtsMute(true) @@ -347,6 +349,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG TtsRequest.Status.COMPLETED, TtsRequest.Status.CANCELED, TtsRequest.Status.NOT_ALLOWED -> { + isTtsSpeaking = false Log.i("MainActivity", "TTS finished: ${ttsRequest.speech}") if (taskController.currentTask == "patrol") { binding.animatedEmojiView.currentExpression = AnimatedEmojiView.Expression.ANGRY @@ -356,6 +359,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG liveKitManager?.setTtsMute(false) } TtsRequest.Status.ERROR -> { + isTtsSpeaking = false Log.e("MainActivity", "TTS error: ${ttsRequest.speech}") binding.animatedEmojiView.currentExpression = AnimatedEmojiView.Expression.SAD liveKitManager?.setTtsMute(false) @@ -518,7 +522,7 @@ class MainActivity : AppCompatActivity(), OnRobotReadyListener, TtsListener, OnG } } } - if (isIdleTask && !atHomeBase && state == DETECTED && !isSpecialState) { + if (isIdleTask && !atHomeBase && state == DETECTED && !isSpecialState && !isTtsSpeaking) { val hour = java.util.Calendar.getInstance().get(java.util.Calendar.HOUR_OF_DAY) val greeting = when (hour) { in 6..11 -> "早上好"