40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
# T-AND-002 CameraX 采集
|
||
|
||
- **状态**:done
|
||
- **依赖**:T-AND-001
|
||
|
||
## 目标
|
||
|
||
用 CameraX 采集相机画面,为 MediaPipe 提供连续帧。
|
||
|
||
## load
|
||
|
||
```
|
||
DSH.md
|
||
app/src/main/java/com/opendance/studio/camera/CameraController.kt
|
||
app/src/main/java/com/opendance/studio/data/AppSettings.kt
|
||
```
|
||
|
||
## 交付物
|
||
|
||
`camera/CameraController.kt`:Preview + ImageAnalysis 绑定、分辨率档位、前后摄切换。
|
||
|
||
## 关键实现
|
||
|
||
| 项 | 取值/做法 | 理由 |
|
||
|---|---|---|
|
||
| 背压策略 | `STRATEGY_KEEP_ONLY_LATEST` | 推理慢时自动丢帧,预览不卡顿 |
|
||
| 输出格式 | `OUTPUT_IMAGE_FORMAT_RGBA_8888` | MediaPipe 需要 Bitmap,避免 YUV 转换 |
|
||
| 分辨率 | 三档(480x360 / 640x480 / 1280x720),`FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER` | 低端机可降档保帧率 |
|
||
| 分析线程 | 单线程 Executor | 推理串行,避免并发抢占 |
|
||
| 镜像 | 预览镜像由 PreviewView 处理;**发送原始未镜像坐标** | 契约要求由 flags.bit0 声明镜像语义 |
|
||
|
||
## 隐私
|
||
|
||
相机帧只在内存中流转到推理器,**不落盘、不上传**。离开运行页即 `unbindAll()`,
|
||
不在后台占用相机。
|
||
|
||
## 验收
|
||
|
||
`assembleDebug` 通过;运行页可正常预览(需真机,见 tasks/009 的环境说明)。
|