// ============================================================
// CamTalk — 主应用组件
// ============================================================
import { useVisionSession } from "./hooks/useVisionSession";
import { VideoPreview } from "./components/VideoPreview";
import { ChatPanel } from "./components/ChatPanel";
import { ToastContainer } from "./components/Toast";
import "./App.css";
function App() {
const {
messages,
currentReply,
isProcessing,
isSpeaking,
isVADReady,
vadError,
connectionStatus,
videoRef,
stream,
startSession,
stopSession,
interrupt,
} = useVisionSession();
const isConnected = connectionStatus === "connected";
return (
CamTalk
{isConnected
? "已连接"
: connectionStatus === "connecting"
? "连接中..."
: "未连接"}
{isSpeaking &&
🎤 正在聆听...
}
{isConnected && !isVADReady && !vadError && (
正在初始化语音检测...
)}
{vadError && (
⚠️ {vadError}
)}
{isProcessing && (
)}
{connectionStatus === "disconnected" && messages.length > 0 && (
连接已断开,正在重连...
)}
);
}
export default App;