diff --git a/frontend/src/App.css b/frontend/src/App.css index 6f12e3a..cc89700 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -103,6 +103,15 @@ body { animation: pulse 1.5s ease-in-out infinite; } +.vad-indicator--loading { + color: var(--color-warning); +} + +.vad-indicator--error { + color: var(--color-error); + animation: none; +} + @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 6e8e52d..13174ec 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -13,6 +13,8 @@ function App() { currentReply, isProcessing, isSpeaking, + isVADReady, + vadError, connectionStatus, videoRef, stream, @@ -21,12 +23,18 @@ function App() { interrupt, } = useVisionSession(); + const isConnected = connectionStatus === "connected"; + return (

CamTalk

- {connectionStatus === "connected" ? "已连接" : connectionStatus === "connecting" ? "连接中..." : "未连接"} + {isConnected + ? "已连接" + : connectionStatus === "connecting" + ? "连接中..." + : "未连接"}
@@ -34,6 +42,16 @@ function App() {
{isSpeaking &&
🎤 正在聆听...
} + {isConnected && !isVADReady && !vadError && ( +
+ 正在初始化语音检测... +
+ )} + {vadError && ( +
+ ⚠️ {vadError} +
+ )}
@@ -48,7 +66,7 @@ function App() {