第二版修改
This commit is contained in:
+23
-8
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user