feat: 底部控制栏添加摄像头/麦克风开关,说话时麦克风脉冲动画

- useVisionSession 新增 isCameraOn/isMicOn 状态 + toggleCamera/toggleMic
- 底部控制栏添加 📷🎤 图标按钮,开启绿色/关闭红色
- 说话时麦克风按钮绿色脉冲缩放动画(micPulse)
- 按钮样式优化:nowrap 防换行,flex-wrap 自适应

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-13 20:01:37 +08:00
parent 188782fa66
commit 00f10088d0
3 changed files with 92 additions and 16 deletions

View File

@@ -332,7 +332,48 @@ body {
.video-controls__row {
display: flex;
gap: 8px;
gap: 6px;
flex-wrap: wrap;
justify-content: center;
}
.btn--ctrl {
padding: 6px 12px;
font-size: 0.78rem;
border-radius: var(--radius-sm);
border: 1px solid var(--color-border);
background: var(--color-surface-2);
color: var(--color-text-muted);
cursor: pointer;
transition: all 0.15s;
white-space: nowrap;
}
.btn--ctrl:hover {
background: var(--color-border);
color: var(--color-text);
}
.btn--ctrl-on {
background: rgba(34, 197, 94, 0.15);
color: var(--color-success);
border-color: rgba(34, 197, 94, 0.3);
}
.btn--ctrl-off {
background: rgba(239, 68, 68, 0.1);
color: var(--color-error);
border-color: rgba(239, 68, 68, 0.2);
}
.btn--speaking {
animation: micPulse 0.8s ease-in-out infinite;
box-shadow: 0 0 12px rgba(34, 197, 94, 0.5);
}
@keyframes micPulse {
0%, 100% { box-shadow: 0 0 8px rgba(34, 197, 94, 0.4); transform: scale(1); }
50% { box-shadow: 0 0 16px rgba(34, 197, 94, 0.8); transform: scale(1.05); }
}
/* ---- 右侧聊天面板 ---- */