Skip to content

相机应用功能完善方案 #95

@TIMEKB

Description

@TIMEKB

一、BUG 修复
(一)快门调整按键功能异常
问题描述:快门调整加减按键效果错误,按 "+" 键实际为减少快门值,按 "-" 键实际为增加快门值。
(二)自动模式(Auto)失效问题
问题描述:Auto 模式有时无法根据环境自动调整参数(如快门、ISO)。
(三)UI 界面遮挡画面
问题描述:部分 UI 元素(如参数设置栏、功能按钮)遮挡拍摄画面,影响取景。修复方案:单击空白处时自动隐藏非必要 UI(如参数面板、功能按钮),仅保留核心操作按钮(如功能切换、快门键等)。
(四)内置相册功能不完善(但是相册app有弥补了这点,或许可以将图标功能改成跳去相册app?)

二、功能性优化
(零)设置记忆功能(配置文件)
功能描述:保存相机 App 设置的参数(照片 / 录像模式、码率、分辨率、快门、ISO 等状态),重启时读取配置文件,无文件时自动生成;打开参数设置后,点击空白处退出。
参数设置交互:
设置界面采用抽屉式或弹窗式设计,点击空白区域触发onClick事件,关闭设置界面并保存当前参数。
(一)USER 键触发录像 / 拍照(物理快门键)
功能描述:通过物理快门键(USER 键)开始 / 停止录制。
(二)屏幕交互功能
功能描述:
单击空白处隐藏 / 显示 UI:隐藏时仅保留录制倒计时和电量图标。
双击屏幕中央开启 / 关闭放大辅助对焦;
录制开始 / 结束提示音(大 / 中 / 小 / 关闭)。
辅助对焦:双击后放大屏幕中央区域(2-5 倍可选),显示对焦框,自动检测画面边缘对比度进行对焦。
(三)预录制 / 循环录制模式(行车记录仪模式)
功能描述:
预录制:触发保存前 “自定义” 分钟录像并开始新录制(参考 DJI Action 系列);
循环录制:检测到特定画面 / 行为(如运动物体、声音异常)触发录制保存。(这个可以做到检测到胶片相机取景器的光影快速变化+快门声音。自动开始录像。非常完美!)
预录制功能:
后台持续缓存最近 5 分钟的视频流,当检测到触发事件(如 USER 键)时,将缓存视频与当前录制内容合并保存。
循环录制:
集成图像识别算法(如 OpenCV),检测画面中的运动物体;或通过麦克风监测环境音量,超过阈值时触发录制。
支持设置快门触发灵敏度(低 / 中 / 高),用户可在设置中自定义。
(四)黑屏待机(省电模式)
功能描述:过特定时间后屏幕自动最暗,点击屏幕恢复亮度。省电策略:
检测屏幕无操作时间,达到设定阈值(默认 30 秒)时,逐步降低亮度至最低(可在设置中调整阈值和最低亮度)。
点击屏幕或按下物理按键时,唤醒屏幕并恢复上次亮度设置,同时关闭黑屏待机定时器。

三、UI 类功能设计
(一)红色录像框
视觉规范:
录制状态下,屏幕边缘显示红色半透明边框。
(二)自定义裁切模式
支持格式:16:10、4:3、1:1、全屏等。
(三)辅助功能显示
九宫格辅助线:拍摄时显示九宫格网格,帮助用户构图(可在设置中开启 / 关闭)。
安全线与裁切线:针对不同输出平台(如手机屏幕、电视屏幕)显示安全区域边界,避免重要内容被裁剪。
峰值显示:对焦时高亮显示画面边缘对比度强烈的区域(白色高亮线条),辅助手动对焦。
直方图:实时显示画面亮度分布直方图,横轴为亮度值,纵轴为像素数量,帮助用户调整曝光参数。
四、特殊功能拓展
(一)机身联动功能
触发逻辑:当相机通过特定接口(如 HDMI、USB-C)连接外部设备(如无人机、运动相机)时,检测到通路信号后自动保存一张照片或开始录像。配置方式:
在设置中开启 "机身联动" 功能,选择触发动作(拍照 / 录像)和触发条件(接口连接 / 断开)。
(二)双相机模式
功能描述:接入一路 UVC 视频流,支持拖动放大调节第二镜头画面。技术实现:
集成 UVC 驱动,支持外接摄像头(如 USB 摄像头、网络摄像头)视频流输入。
主界面分屏显示:主镜头画面占 70%,第二镜头画面占 30%,支持手势拖动第二画面到任意位置并调整大小(最大可覆盖全屏)。
双镜头切换:点击第二画面可切换为主镜头,原主镜头转为预览小窗,支持同步或独立调节参数(如对焦、曝光)。
双录制:可以分开录制两条独立的视频。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions