From 61f68ca41f08f1950ef595aa54a349de04907bdf Mon Sep 17 00:00:00 2001 From: el-yazide mohamed Date: Sat, 7 Jun 2025 08:19:34 +0200 Subject: [PATCH] bis --- node-server/assets/script.js | 45 +++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/node-server/assets/script.js b/node-server/assets/script.js index caa8ba9..47b1a99 100644 --- a/node-server/assets/script.js +++ b/node-server/assets/script.js @@ -49,13 +49,6 @@ function updateVinylAnimation() { } } -// Fonction pour arrêter les deux audios -function stopAudio() { - audioForward.pause(); - audioReverse.pause(); - isPlaying = false; - updateVinylAnimation(); -} // Fonction pour contrôler la lecture en fonction de la vitesse (peut être négative) function controlPlayback(speed) { @@ -80,20 +73,44 @@ function controlPlayback(speed) { // On lit dans le bon sens if (speed > 0) { - audioForward.playbackRate = normalizedSpeed; // Redémarrer la lecture si elle est arrivée à la fin - if (audioForward.currentTime >= audioForward.duration) { - audioForward.currentTime = 0; + // Passage en lecture forward + + // Si on était en reverse, on récupère la position dans reverse et on la convertit en forward + if (!audioForward.paused) { + // on continue normalement + } else { + // on synchronise la position forward avec la position inverse actuelle + audioForward.currentTime = audioReverse.duration - audioReverse.currentTime; + audioReverse.pause(); } + + audioForward.playbackRate = normalizedSpeed; audioForward.play(); + isPlaying = true; } else { - audioReverse.playbackRate = normalizedSpeed; - if (audioReverse.currentTime >= audioReverse.duration) { - audioReverse.currentTime = 0; + // Passage en lecture reverse + + if (!audioReverse.paused) { + // on continue normalement + } else { + // on synchronise la position reverse avec la position forward actuelle + audioReverse.currentTime = audioForward.duration - audioForward.currentTime; + audioForward.pause(); } + + audioReverse.playbackRate = normalizedSpeed; audioReverse.play(); + isPlaying = true; } - isPlaying = true; + updateVinylAnimation(); +} + +// Fonction pour arrêter les deux audios +function stopAudio() { + audioForward.pause(); + audioReverse.pause(); + isPlaying = false; updateVinylAnimation(); }