fix(h5): optimize camera flipping and angle haptics, refresh splash branding
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 拍摄角度不合格震动提醒
|
||||
|
||||
按用户确认的规则实现,纳入 2026-10-13 相机与首页更新发版。
|
||||
|
||||
- 实时检测确认单人、清晰度、距离与居中等前置条件通过,但角度不合格连续约 1 秒后,调用一次 30ms 轻震。
|
||||
- 持续角度不合格时,相邻提醒至少间隔 4 秒;不使用独立定时器,只有收到新检测结果才可能提醒。
|
||||
- 合格、无人脸、其他质量问题或检测失败立即取消震动并重置连续计时;漏帧也中断计时。检测结果间隔超过 2 秒会重新累计,避免推理卡顿被误认为持续不合格。
|
||||
- 自动拍摄、手动快门和拍摄完成均不再震动。
|
||||
- 拍摄锁、摄像头切换/未就绪、离开拍照页及切后台禁止提醒。停止检测、步骤重置或开始拍摄时取消尚未结束的震动。
|
||||
- 前后提示保持 4 秒限频,不因角度短暂合格、镜头切换或步骤重置绕过冷却。
|
||||
- 不支持接口、接口拒绝或抛出错误时静默忽略,不影响原有文字、语音和自动拍摄。
|
||||
|
||||
没有改变拍摄角度、距离、亮度、稳定时间或评分推荐算法。不是所有手机都能产生物理震动,微信/鸿蒙需真机复验,iOS 当前按无震动降级。
|
||||
|
||||
验证命令:
|
||||
|
||||
```sh
|
||||
node h5/test/customer-feedback-second.js
|
||||
node h5/test/customer-feedback-fourth.js
|
||||
node h5/test/camera-flip-browser.mjs
|
||||
node h5/test/capture-quality-browser.mjs
|
||||
```
|
||||
|
||||
测试涵盖定时边界、持续限频、合格取消、无人脸、非角度问题、拍摄/切换/后台隔离、不支持/拒绝安全降级,以及相机翻转和真实本地模型三连拍回归。浏览器测试使用模拟相机和拦截的身份/报告接口,不调用付费检测、不写真实账号或报告。
|
||||
@@ -0,0 +1,29 @@
|
||||
# 相机翻转性能优化
|
||||
|
||||
本次优化纳入 2026-10-13 相机与首页更新发版。
|
||||
|
||||
## 修改范围
|
||||
|
||||
- 相机首帧 readyState ≥ 2 且宽高有效后即可显示,检查周期 50ms;去掉原有三轮 300ms 分辨率预热等待。
|
||||
- 翻转过程中保留上一帧及原来的镜像方向,显示“正在切换摄像头…”。静帧仅保存在内存 Canvas,恢复预览或离开页面后清空,不上传、不持久化。
|
||||
- 启动/翻转时禁用翻转按钮,拍摄和步骤推进期间拒绝翻转。
|
||||
- 新镜头失败、首帧等待超时或浏览器明确返回错误的 facingMode 时,尝试恢复原镜头一次;恢复也失败才降级到系统相机。
|
||||
- 翻转及恢复请求设置 12 秒超时,初次权限询问不设置该超时。首帧单独设置 12 秒超时,不再超时强行认为成功。迟到的流及时停止。
|
||||
- 检测循环增加代次令牌,旧镜头推理结果不可更新新镜头状态或启动第二条循环;旧推理未结束时不叠加新推理。
|
||||
- 模型加载回调也校验镜头令牌,避免旧回调覆盖切换状态。
|
||||
|
||||
拍摄角度、亮度、尺寸、清晰度、稳住时间、照片编码、评分和推荐规则均未修改。
|
||||
|
||||
## 验证
|
||||
|
||||
- `node h5/test/camera-flip-browser.mjs`:模拟相机验证首帧显示时延、静帧、重复点击、拍摄锁、失败/忽略 facingMode/超时恢复、旧推理隔离、离开后迟到流释放。
|
||||
- `node h5/test/capture-quality-browser.mjs`:真实本地模型、三角度自动拍摄、最终 JPEG 复验、语音顺序、摄像头释放通过。
|
||||
- `node h5/test/login-performance.mjs`:登录轻量加载、相机模型按需加载/失败重试等通过。
|
||||
- 无付费检测调用、真实账号和报告写入。
|
||||
|
||||
模拟相机对比:原实现首帧后额外等待约 900ms,两轮优化后约 57~91ms(受测试机器调度影响)。不是手机真机性能结论。
|
||||
|
||||
## 仍需真机验证
|
||||
|
||||
微信 Android、iOS、鸿蒙:连续翻转、后置转前置、翻转时返回/切后台、拒绝相机权限、拍摄中点击翻转。
|
||||
摄像头硬件/微信浏览器重新启动本身的耗时无法消除;不提供 getSettings().facingMode 的浏览器只能依赖 facingMode ideal 选择,无法保证识别其是否忽略请求。
|
||||
Reference in New Issue
Block a user