UI: 增大摇杆尺寸至180dp;视频全屏延展(ZOOM模式)并加入缩放模式设置项

- 左右摇杆 Modifier.size 140dp -> 180dp (MainScreen.kt)
- RtspVideoPlayer 新增 resizeMode: VideoResizeMode 参数,默认 ZOOM
- 新增 VideoResizeMode 枚举 (FIT/ZOOM/FILL) 及 Media3 常量映射
- 设置界面新增"视频缩放模式"下拉选项,持久化到 DataStore
- AGENTS.md 更新已完成项和配置项表格

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-07-17 20:54:03 +08:00
parent 6d7231b064
commit d563585cd5
9 changed files with 115 additions and 10 deletions
+4 -3
View File
@@ -115,7 +115,8 @@ val y = power / 100.0 * sin(angle) // 水平分量
| `robot_host` | String | `10.21.31.103` | 机器人 IP 地址 |
| `robot_port` | Int | `30000` | 机器人 UDP 端口 |
| `rtsp_url` | String | `rtsp://10.21.31.103:554/stream` | RTSP 视频流地址 |
| `video_codec` | Enum | `AUTO` | `AUTO` / `FORCE_SW_H264` / `FORCE_SW_H265` |
| `video_codec` | Enum | `AUTO` | `AUTO` / `FORCE_HW` / `FORCE_SW_H264` / `FORCE_SW_H265` |
| `video_resize_mode` | Enum | `ZOOM` | `FIT` / `ZOOM` / `FILL` |
### 持久化
@@ -187,14 +188,14 @@ val y = power / 100.0 * sin(angle) // 水平分量
- [x] 状态上报 UI 展示:StatusPanel.kt(异常列表+错误码映射 ErrorCodes.kt、运控状态 Roll/Pitch/Yaw/速度/高度、设备温度电机/驱动器最高温、电池左右电压/电量/温度),顶部状态栏 Info 按钮触发底部弹出面板;指令失败/状态机拒绝通过 Snackbar 反馈
- [x] 更多控制按钮:Mode(常规/导航/辅助)、步态(基础/楼梯/平地敏捷/楼梯敏捷)、照明(前/后灯开/关)、充电(开始/结束)、休眠(休眠/唤醒)。底部控制区可纵向滚动,点击"更多"展开全部控制选项
- [x] RTSP 解码器策略实现:`VideoCodec` 枚举含 `AUTO`/`FORCE_HW`/`FORCE_SW_H264`/`FORCE_SW_H265``toMediaCodecSelector()` 映射到对应 `MediaCodecSelector``DefaultLoadControl` 最小缓冲(100ms起播,总缓冲<500ms,无回退缓存,时间优先于大小阈值);`FORCE_HW` 模式对所有 MIME 仅保留硬件加速解码器
- [x] 摇杆尺寸增大:左右摇杆从 140dp 增大到 180dp,提升操控精度
- [x] 视频缩放模式:`VideoResizeMode` 枚举(FIT/ZOOM/FILL),设置界面新增"视频缩放模式"下拉选项,持久化保存,实时生效
### 待办
- [ ] UI 布局:增加 logo 图作为底图,无视频流时显示底图
- [ ] UI 布局:视频默认延展与屏幕等大(填充全屏)
- [ ] UI 布局:header 部分虽已避开状态栏,但底色与屏幕顶端视觉不吸附,需优化视觉传达效果
- [ ] UI 布局:功能按钮均布在四周,充分利用屏幕空间,优化单手操作体验
- [ ] UI 布局:增大摇杆尺寸,提高操控精度和舒适度
- [ ] UI 布局:开关灯合并为一个按键,通过图标/颜色表示置位状态,需配合机器人回报状态同步
- [ ] 状态栏:增加 ICMP 延迟测量显示,显示当前 WiFi 强度和延迟 ms
- [ ] 状态机修复:趴下状态和空闲状态均允许切换站立状态,切换站立后自动进入 RL 控制状态