diff --git a/frontend/js/camera.js b/frontend/js/camera.js index 437b36d..499bcd5 100644 --- a/frontend/js/camera.js +++ b/frontend/js/camera.js @@ -114,38 +114,23 @@ async function lancerCapture() { compteurEl.textContent = `Photo ${i + 1} / ${nbPhotos}`; } + // Lancer la capture en parallele du compte a rebours + const promesseCapture = apiPost('/api/capturer').catch(() => null); + 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(); - afficherErreurCapture('Appareil photo deconnecte', 'Reconnectez le DSLR et reessayez'); - return; - } - arreterPreview(); - await pause(300); afficherFlash(); - // Tenter la capture avec retry - let resultat = null; + // Attendre la capture (devrait deja etre terminee) + let resultat = await promesseCapture; let erreurReseau = false; - for (let r = 0; r < 3; r++) { - try { - resultat = await apiPost('/api/capturer'); - } catch (e) { - erreurReseau = true; - await pause(500); - continue; - } - erreurReseau = false; - if (!resultat.erreur) break; - if (resultat.erreur === 'Limite de photos atteinte') { - afficherErreurCapture('Limite de photos atteinte', 'La session est terminee'); - return; - } - await pause(500); + + if (!resultat) { + erreurReseau = true; + } else if (resultat.erreur === 'Limite de photos atteinte') { + afficherErreurCapture('Limite de photos atteinte', 'La session est terminee'); + return; } if (erreurReseau) {