第二版修改

This commit is contained in:
root
2026-10-10 09:46:17 +08:00
parent 4b26288098
commit 652c977cec
5 changed files with 130 additions and 78 deletions
+23 -8
View File
@@ -711,10 +711,14 @@
// 左脸出镜=头向自己的右侧转(target 'left',产物作 left_image)。
// mask 为 index.html 取景轮廓编号(1=左脸出镜 耳在画面左,2=右脸出镜 耳在画面右,均按镜像预览绘制)
var CAM_STEPS = [
{ step: '1/3<br>请正对屏幕', guides: ['正脸居中', '取下眼镜', '光线充足'], target: 'front', mask: 0 },
{ step: '2/3<br>请右脸出镜', guides: ['右脸居中', '取下眼镜', '光线充足'], target: 'right', mask: 2 },
{ step: '3/3<br>请左脸出镜', guides: ['左脸居中', '取下眼镜', '光线充足'], target: 'left', mask: 1 }
{ step: '1/3<br>请正对屏幕', guides: ['正脸居中', '取下眼镜', '光线充足'], target: 'front', mask: 0,
done: '正脸拍摄完成' },
{ step: '2/3<br>请右脸出镜', guides: ['右脸居中', '取下眼镜', '光线充足'], target: 'right', mask: 2,
done: '右脸拍摄完成', preview: '下一张:右脸出镜<br>请向左转头' },
{ step: '3/3<br>请左脸出镜', guides: ['左脸居中', '取下眼镜', '光线充足'], target: 'left', mask: 1,
done: '左脸拍摄完成', preview: '下一张:左脸出镜<br>请向右转头' }
];
var NEXT_PAUSE_MS = 2000; // 两张之间的停顿:给用户「下一张要拍什么」的心理预期
function photosByView(ph) { // 拍摄顺序 → 送检/报告/历史统一口径 [正脸, 左脸, 右脸]
var at = {};
CAM_STEPS.forEach(function (s, i) { at[s.target] = ph[i]; });
@@ -729,6 +733,7 @@
.map(function (g) { return '<span>' + g + '</span>'; })
.join('<i></i>');
$('#cam-mask').setAttribute('data-step', cfg.mask); // 蒙版按步骤切换轮廓
$('#cam-next').classList.remove('show');
applyMirror();
resetDetectState();
voice.play(VOICE.step[camStep]); // 步骤引导语音
@@ -739,20 +744,30 @@
// 照片就绪(已通过校验)后推进流程:存图→「拍摄完成」→300ms 过渡→下一步;三步严格按顺序,本步合格才进下一步
function onPhotoCaptured(dataUrl) {
shutterLock = true; // 推进窗口上锁,直到下一步/送检
shutterLock = true; // 推进窗口上锁(停顿期间不检测、不接受快门),直到下一步/送检
photos[camStep] = dataUrl;
voice.play(VOICE.shot, { cut: true }); // 「拍摄完成」:已拍下,本步未播完的引导作废
var seq = camSeq;
var seq = camSeq, hasNext = camStep < CAM_STEPS.length - 1;
if (hasNext) {
// 停顿卡:本张完成 + 下一张拍什么、往哪转;停顿结束再切到下一步(播下一步引导语音)
setHint('');
hideNudge();
clearTimeout(nudgeTimer);
setMask('');
$('#cam-next-done').textContent = CAM_STEPS[camStep].done;
$('#cam-next-tip').innerHTML = CAM_STEPS[camStep + 1].preview;
$('#cam-next').classList.add('show');
}
setTimeout(function () {
if (seq !== camSeq) return; // 期间已退出/重新开始:放弃本次推进
if (camStep < CAM_STEPS.length - 1) {
if (hasNext) {
camStep++;
renderCamStep(); // 内含检测状态机重置
renderCamStep(); // 内含停顿卡收起与检测状态机重置
shutterLock = false; // 进入下一步即解锁
} else {
submitPhotos(seq); // 三张拍完:送检
}
}, 300);
}, hasNext ? NEXT_PAUSE_MS : 300);
}
// 白屏补光抓拍:全屏纯白瞬间点亮→约300ms 后抓全分辨率帧→保持300ms 再淡出(总 600–900ms)