Capture en parallele du compte a rebours : photo prise pendant le 3 2 1

This commit is contained in:
2026-04-09 11:21:19 +02:00
parent c31cab8dc0
commit a3c7d6e4e4

View File

@@ -114,39 +114,24 @@ async function lancerCapture() {
compteurEl.textContent = `Photo ${i + 1} / ${nbPhotos}`; compteurEl.textContent = `Photo ${i + 1} / ${nbPhotos}`;
} }
// Lancer la capture en parallele du compte a rebours
const promesseCapture = apiPost('/api/capturer').catch(() => null);
await compteARebours(); await compteARebours();
// Si la camera a signale une erreur pendant le compte a rebours, on arrete
const erreurVisible = !document.getElementById('preview-erreur-camera').classList.contains('cache');
if (erreurVisible) {
arreterPreview(); arreterPreview();
afficherErreurCapture('Appareil photo deconnecte', 'Reconnectez le DSLR et reessayez');
return;
}
arreterPreview();
await pause(300);
afficherFlash(); afficherFlash();
// Tenter la capture avec retry // Attendre la capture (devrait deja etre terminee)
let resultat = null; let resultat = await promesseCapture;
let erreurReseau = false; let erreurReseau = false;
for (let r = 0; r < 3; r++) {
try { if (!resultat) {
resultat = await apiPost('/api/capturer');
} catch (e) {
erreurReseau = true; erreurReseau = true;
await pause(500); } else if (resultat.erreur === 'Limite de photos atteinte') {
continue;
}
erreurReseau = false;
if (!resultat.erreur) break;
if (resultat.erreur === 'Limite de photos atteinte') {
afficherErreurCapture('Limite de photos atteinte', 'La session est terminee'); afficherErreurCapture('Limite de photos atteinte', 'La session est terminee');
return; return;
} }
await pause(500);
}
if (erreurReseau) { if (erreurReseau) {
afficherErreurCapture('Erreur reseau', 'Le serveur ne repond pas — redemarrez le photobooth'); afficherErreurCapture('Erreur reseau', 'Le serveur ne repond pas — redemarrez le photobooth');