From 82ce27c10d025d238c8e39a107ad33945983b1a3 Mon Sep 17 00:00:00 2001 From: el-yazide mohamed Date: Sat, 7 Jun 2025 20:59:01 +0200 Subject: [PATCH] rewind encore --- node-server/assets/muddy_files.html | 4 +- node-server/assets/script.js | 65 +----------------------- node-server/server.js | 78 +---------------------------- 3 files changed, 5 insertions(+), 142 deletions(-) diff --git a/node-server/assets/muddy_files.html b/node-server/assets/muddy_files.html index f89b770..2c5bf7f 100644 --- a/node-server/assets/muddy_files.html +++ b/node-server/assets/muddy_files.html @@ -43,9 +43,9 @@ - + data-reverse-src="muddy_files_reverse.mp3"> diff --git a/node-server/assets/script.js b/node-server/assets/script.js index 9327b77..be921a6 100644 --- a/node-server/assets/script.js +++ b/node-server/assets/script.js @@ -19,8 +19,7 @@ const rotationsPerTrack = 3; // tours complets du vinyle sur toute la durée let currentRotation = 0; // rotation en degrés actuelle du vinyle // 3. Connexion Socket.io - - const socket = io(); +const socket = io(); socket.on('position', (position) => { const now = Date.now(); @@ -66,7 +65,6 @@ socket.on('position', (position) => { }, 300); }); -/* // 4. Fonctions function togglePlay() { @@ -149,65 +147,4 @@ audio.addEventListener('ended', () => { } else { isPlaying = false; } -}); */ - -const socket = io(); - -let isPlaying = false; - -const rotationsPerTrack = 3; -let currentRotation = 0; - -// Valeurs fictives pour durée, car tu ne peux plus récupérer la durée côté client -const DURATION = 96; // durée en secondes (1:36) - -// Simulation simple du temps qui passe côté client pour la rotation du vinyle -let currentTime = 0; -let animationFrameId; - -function playTrack() { - socket.emit('play-sound', 'muddy_files.mp3'); - isPlaying = true; - startVinylRotation(); -} - -function stopTrack() { - socket.emit('stop-sound'); - isPlaying = false; - stopVinylRotation(); - currentTime = 0; - updateVinylRotation(); -} - -function startVinylRotation() { - function update() { - if (isPlaying) { - currentTime += 0.1; // avance temps fictif - if (currentTime > DURATION) { - currentTime = 0; // boucle simple - } - updateVinylRotation(); - animationFrameId = requestAnimationFrame(update); - } - } - update(); -} - -function stopVinylRotation() { - cancelAnimationFrame(animationFrameId); -} - -function updateVinylRotation() { - currentRotation = (currentTime / DURATION) * 360 * rotationsPerTrack; - vinyl.style.transform = `rotate(${currentRotation}deg)`; -} - -// Exemple : lancer / arrêter à chaque clic -vinyl.addEventListener('click', () => { - if (isPlaying) { - stopTrack(); - } else { - playTrack(); - } }); - diff --git a/node-server/server.js b/node-server/server.js index 3a5a959..4f13c82 100644 --- a/node-server/server.js +++ b/node-server/server.js @@ -1,4 +1,4 @@ -/* const express = require('express'); +const express = require('express'); const { createServer } = require('node:http'); // socket const { Server } = require('socket.io'); @@ -69,78 +69,4 @@ io.on('connection', (socket) => { server.listen(port, () => { console.log(`Example app listening on port ${port}`) -}) */ - -const express = require('express'); -const http = require('http'); -const socketIo = require('socket.io'); -const player = require('play-sound')({ player: 'mpg123' }); // forcer mpg123 - -const app = express(); -const server = http.createServer(app); -const io = socketIo(server); - -const SerialPort = require('serialport'); -const ReadlineParser = require('@serialport/parser-readline'); - -const portName = "/dev/ttyUSB0"; // adapte selon ta config -const arduinoSerialPort = new SerialPort(portName, { baudRate: 115200 }); - -const parser = arduinoSerialPort.pipe(new ReadlineParser({ delimiter: '\n' })); - -parser.on('data', (data) => { - console.log('Données reçues Arduino:', data.trim()); - io.emit('position', data.trim()); // envoi à tous les clients -}); - -io.on('connection', (socket) => { - console.log('Client connecté'); - // Ici tu peux gérer d'autres events socket si besoin -}); - -app.use(express.static('assets')); // dossier public pour fichiers front - -let currentAudioProcess = null; - -io.on('connection', (socket) => { - console.log('Client connecté'); - - socket.on('play-sound', (filename) => { - console.log('Lecture demandée:', filename); - - // Stopper si un son est déjà joué - if (currentAudioProcess) { - console.log('Arrêt du son précédent'); - currentAudioProcess.kill(); - currentAudioProcess = null; - } - - // Lancer la lecture avec mpg123 - const path = require('path'); -const filePath = path.join(__dirname, 'node-server', 'sounds', filename); -console.log('Chemin complet du fichier:', filePath); - -currentAudioProcess = player.play(filePath, (err) => { - if (err && !err.killed) { - console.error('Erreur lecture audio:', err); - } - currentAudioProcess = null; - }); - }); - - socket.on('stop-sound', () => { - if (currentAudioProcess) { - currentAudioProcess.kill(); - currentAudioProcess = null; - console.log('Lecture arrêtée'); - } - }); - - socket.on('disconnect', () => { - console.log('Client déconnecté'); - }); -}); - -server.listen(3000, () => { - console.log('Serveur démarré sur http://localhost:3000'); -}); +}) \ No newline at end of file