Surprise + capture en parallele : DSLR declenche pendant l'image surprise
- Preview stoppe AVANT la surprise (plus de frame flou) - Capture DSLR lancee en meme temps que la surprise (apiPost en parallele) - 800ms de reaction pendant que le DSLR travaille - Flash + masquer surprise apres le declenchement Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1146,7 +1146,7 @@
|
|||||||
|
|
||||||
<script src="/js/websocket.js?v=16"></script>
|
<script src="/js/websocket.js?v=16"></script>
|
||||||
<script src="/js/app.js?v=25"></script>
|
<script src="/js/app.js?v=25"></script>
|
||||||
<script src="/js/camera.js?v=24"></script>
|
<script src="/js/camera.js?v=25"></script>
|
||||||
<script src="/js/effects.js?v=4"></script>
|
<script src="/js/effects.js?v=4"></script>
|
||||||
<script src="/js/gallery.js?v=5"></script>
|
<script src="/js/gallery.js?v=5"></script>
|
||||||
<script src="/js/share.js?v=10"></script>
|
<script src="/js/share.js?v=10"></script>
|
||||||
|
|||||||
@@ -316,22 +316,30 @@ async function lancerCapture() {
|
|||||||
const avecPreMessages = (i === 0);
|
const avecPreMessages = (i === 0);
|
||||||
await compteARebours(avecPreMessages);
|
await compteARebours(avecPreMessages);
|
||||||
|
|
||||||
// Surprise : seulement en photo simple (pas strip/multi)
|
// Stopper le preview AVANT la surprise (evite un frame flou visible)
|
||||||
// Affiche la surprise PUIS capture pendant que les gens reagissent
|
arreterPreview();
|
||||||
const aSurprise = (modeActuel === 'simple') && montrerSurprise();
|
|
||||||
if (aSurprise) await pause(500);
|
|
||||||
|
|
||||||
// Flash blanc immédiat + lancer capture en parallèle
|
// Surprise : seulement en photo simple (pas strip/multi)
|
||||||
|
// La capture DSLR se lance pendant que l'image surprise est affichee
|
||||||
|
const aSurprise = (modeActuel === 'simple') && montrerSurprise();
|
||||||
|
|
||||||
|
// Lancer la capture immediatement (le DSLR met ~1-2s a repondre)
|
||||||
|
const capturePromise = apiPost('/api/capturer').catch(() => null);
|
||||||
|
|
||||||
|
// Laisser la surprise visible pendant que le DSLR capture
|
||||||
|
if (aSurprise) await pause(800);
|
||||||
|
|
||||||
|
// Flash blanc au moment ou le DSLR a eu le temps de declencher
|
||||||
const flash = document.getElementById('flash-blanc');
|
const flash = document.getElementById('flash-blanc');
|
||||||
flash.classList.remove('cache');
|
flash.classList.remove('cache');
|
||||||
flash.style.animation = 'none';
|
flash.style.animation = 'none';
|
||||||
flash.offsetHeight;
|
flash.offsetHeight;
|
||||||
flash.style.animation = '';
|
flash.style.animation = '';
|
||||||
|
|
||||||
arreterPreview();
|
|
||||||
let resultat = await apiPost('/api/capturer').catch(() => null);
|
|
||||||
if (aSurprise) { cacherSurprise(); prechargerSurprise(); }
|
if (aSurprise) { cacherSurprise(); prechargerSurprise(); }
|
||||||
|
|
||||||
|
let resultat = await capturePromise;
|
||||||
|
|
||||||
if (!resultat && !resultat?.erreur) {
|
if (!resultat && !resultat?.erreur) {
|
||||||
flash.classList.add('cache');
|
flash.classList.add('cache');
|
||||||
document.getElementById('capture-en-cours').classList.add('cache');
|
document.getElementById('capture-en-cours').classList.add('cache');
|
||||||
|
|||||||
Reference in New Issue
Block a user