Files
opendance 68783c37b6 docs: 消除 Gitea 模棱两可 Unicode 告警(全角标点紧邻 ASCII 时改为半角)
依据 Gitea v1.27.3 modules/charset/escape_stream.go 的判定规则
(analyzeDetectResults:仅当左右相邻字符都不是非 ASCII 时才标记,
且 _common 表恒定生效),把说明文档中会被标记的全角标点
(,:;?!() 等)改为半角,并保证成对括号宽度一致。
中文语境中的全角标点(左右均为中文)保持原样,不动代码与契约语义。
2026-09-15 21:45:51 +08:00

1.2 KiB

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 的环境说明)。