fix: 在空闲检测逻辑中添加TTS状态检查
防止机器人在语音播报时触发空闲问候,避免语音重叠
This commit is contained in:
@@ -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 -> "早上好"
|
||||
|
||||
Reference in New Issue
Block a user