audio src

This commit is contained in:
El-yazide MOHAMED 2025-06-07 13:14:34 +02:00
parent ac89ce77e6
commit 9033c8ad20

View File

@ -1,5 +1,6 @@
// 1. Sélection des éléments du DOM
const vinyl = document.getElementById('vinyl');
const originalSrc = audio.getAttribute('src');
const audio = document.getElementById('audio');
const progress = document.getElementById('progress');
const currentTimeEl = document.getElementById('currentTime');
@ -13,6 +14,9 @@ let isPlaying = false;
let isLooping = false;
let idleTimeout = null;
let reverseInterval = null;
let reverseAudioLoaded = false;
const reverseSrc = audio.dataset.reverseSrc;
// 3. Variables pour calculer la vitesse de rotation
let lastPosition = null;
@ -114,9 +118,18 @@ function stopPlayback() {
}
function simulateReverse(speed) {
// vitesse = ticks/sec → convertir en vitesse de recul
const reverseSpeed = Math.min(speed * 0.01, 2); // seconds per step
if (!reverseAudioLoaded && reverseSrc) {
audio.src = reverseSrc;
audio.load();
reverseAudioLoaded = true;
audio.addEventListener('loadedmetadata', () => {
audio.currentTime = audio.duration - 0.1; // start from the end
}, { once: true });
return; // attend que le fichier soit chargé
}
if (!reverseInterval) {
reverseInterval = setInterval(() => {
if (audio.currentTime > 0.05) {
@ -140,7 +153,19 @@ function stopReverse() {
clearInterval(reverseInterval);
reverseInterval = null;
}
if (reverseAudioLoaded) {
const currentTime = audio.currentTime;
audio.src = originalSrc;
audio.load();
audio.addEventListener('loadedmetadata', () => {
audio.currentTime = Math.min(currentTime, audio.duration - 0.1);
}, { once: true });
reverseAudioLoaded = false;
}
}
// 6. Événements