依据 Gitea v1.27.3 modules/charset/escape_stream.go 的判定规则 (analyzeDetectResults:仅当左右相邻字符都不是非 ASCII 时才标记, 且 _common 表恒定生效),把说明文档中会被标记的全角标点 (,:;?!() 等)改为半角,并保证成对括号宽度一致。 中文语境中的全角标点(左右均为中文)保持原样,不动代码与契约语义。
55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
# T-AND-007 运行页 + 状态指示
|
|
|
|
- **状态**: done
|
|
- **依赖**: T-AND-003 / 005 / 006
|
|
|
|
## 目标
|
|
|
|
预览 + 骨架叠加 + 实时状态,让用户明确知道「现在到底通不通、识别得准不准」。
|
|
|
|
## load
|
|
|
|
```
|
|
DSH.md
|
|
app/src/main/java/com/opendance/studio/ui/RunningScreen.kt
|
|
app/src/main/java/com/opendance/studio/ui/SkeletonOverlay.kt
|
|
```
|
|
|
|
## 数据流
|
|
|
|
```
|
|
CameraX(ImageAnalysis) ──ImageProxy──▶ MediaPipe PoseLandmarker(端侧)
|
|
│ 33 点
|
|
┌───────────────────────┴───────────────────────┐
|
|
▼ ▼
|
|
KeypointFrame(239B) ──▶ WebSocket ──▶ Windows 骨架叠加层
|
|
```
|
|
|
|
## 状态指示(本任务的验收重点)
|
|
|
|
| 指标 | 含义 |
|
|
|--|--|
|
|
| 连接状态 | 未连接 / 连接中 / 已连接 / 重连中(第 N 次)/ 已断开 |
|
|
| 目标 | 完整 WS 地址 |
|
|
| 会话 | 服务端 welcome 回来的 sessionId |
|
|
| 已发送 / 已丢弃 | 帧数;丢弃 > 0 时提示「推理/连接跟不上」 |
|
|
| 发送帧率 / 识别帧率 | 端到端吞吐的两个关键指标 |
|
|
| 推理耗时 | 单帧 MediaPipe 推理毫秒数 |
|
|
| 人体识别 | 已识别 / 未识别到人体(醒目黄色提示) |
|
|
| 平均置信度 | < 70% 时转黄,提示光线或遮挡问题 |
|
|
| 最近错误 | 连接或推理的错误原因 |
|
|
|
|
叠加层把 **低置信度点画成红色**,用户能直接看出是哪个部位没识别到--
|
|
比只显示一个错误码有用得多。
|
|
|
|
## 其他
|
|
|
|
- 相机权限未授予时显示说明 + 授权按钮,并强调「画面只在本地推理」
|
|
- 支持前后摄像头切换(复用同一个分析器实例)
|
|
- 返回键在运行页等同于结束推流,避免相机后台占用
|
|
|
|
## 验收
|
|
|
|
`assembleDebug` 通过;页面构造路径在构建期完成类型检查。
|
|
端到端推流需真机,见 tasks/009 的环境说明。
|