diff --git a/public/index.html b/public/index.html index 4d6dcd4..ca2b0eb 100644 --- a/public/index.html +++ b/public/index.html @@ -16,7 +16,7 @@
- v1.212 + v1.213
diff --git a/public/script.js b/public/script.js index e6aafb9..9d2fb36 100644 --- a/public/script.js +++ b/public/script.js @@ -256,13 +256,14 @@ async function playSound(i) { const btnElement = document.getElementById(`btn-${i}`); + // Si dĂ©jĂ  en lecture : on arrĂȘte if (players[i] && !players[i].paused) { players[i].pause(); players[i].currentTime = 0; btnElement.classList.remove('playing'); btnElement.style.setProperty('--progress', '0%'); } else { - // Si le player n'existe pas, on rĂ©cupĂšre le fichier dans IndexedDB + // Si le player n'existe pas ou a Ă©tĂ© supprimĂ©, on le crĂ©e if (!players[i]) { const fileData = await getSound(`sound-${i}`); if (!fileData) return; @@ -272,7 +273,21 @@ async function playSound(i) { players[i].loop = data.loop; players[i].volume = data.volume || 1; - // ... (votre logique de ontimeupdate et play reste la mĂȘme) + // Gestion de la progression + players[i].ontimeupdate = () => { + const percentage = (players[i].currentTime / players[i].duration) * 100; + btnElement.style.setProperty('--progress', `${percentage}%`); + }; + + // --- CORRECTION ICI : Gestion de la fin de lecture --- + players[i].onended = () => { + btnElement.style.setProperty('--progress', '0%'); + // On ne retire la classe que si on n'est pas en boucle + if (!data.loop) { + btnElement.classList.remove('playing'); + } + }; + players[i].play(); btnElement.classList.add('playing'); } diff --git a/public/sw.js b/public/sw.js index 0cb5b5f..4c0bf75 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,4 +1,4 @@ -const CACHE_NAME = 'sb-v1.212'; // Change ce numĂ©ro pour forcer une mise Ă  jour globale +const CACHE_NAME = 'sb-v1.213'; // Change ce numĂ©ro pour forcer une mise Ă  jour globale const ASSETS = [ './', // Racine './index.html',