diff --git a/public/audio/aquilon.wav b/public/audio/1-aquilon.wav similarity index 100% rename from public/audio/aquilon.wav rename to public/audio/1-aquilon.wav diff --git a/public/audio/av._andalucia_(castaño_robledo).wav b/public/audio/1-av._andalucia_(castaño_robledo).wav similarity index 100% rename from public/audio/av._andalucia_(castaño_robledo).wav rename to public/audio/1-av._andalucia_(castaño_robledo).wav diff --git a/public/audio/avda._alemania_(esquina_ruiz_de_alda).wav b/public/audio/1-avda._alemania_(esquina_ruiz_de_alda).wav similarity index 100% rename from public/audio/avda._alemania_(esquina_ruiz_de_alda).wav rename to public/audio/1-avda._alemania_(esquina_ruiz_de_alda).wav diff --git a/public/audio/1-avda._alemania_(plaza_de_toros).wav b/public/audio/1-avda._alemania_(plaza_de_toros).wav new file mode 100644 index 0000000..976770a Binary files /dev/null and b/public/audio/1-avda._alemania_(plaza_de_toros).wav differ diff --git a/public/audio/avda._alemania_(plaza_de_toros).wav b/public/audio/1-avda.alemania(plaza_de_toros).wav similarity index 100% rename from public/audio/avda._alemania_(plaza_de_toros).wav rename to public/audio/1-avda.alemania(plaza_de_toros).wav diff --git a/public/audio/barriada_del_carmen.wav b/public/audio/1-barriada_del_carmen.wav similarity index 100% rename from public/audio/barriada_del_carmen.wav rename to public/audio/1-barriada_del_carmen.wav diff --git a/public/audio/bbusnofake2026.wav b/public/audio/1-bbusnofake2026.wav similarity index 100% rename from public/audio/bbusnofake2026.wav rename to public/audio/1-bbusnofake2026.wav diff --git a/public/audio/bda._josé_antonio.wav b/public/audio/1-bda._josé_antonio.wav similarity index 100% rename from public/audio/bda._josé_antonio.wav rename to public/audio/1-bda._josé_antonio.wav diff --git a/public/audio/bda._navidad.wav b/public/audio/1-bda._navidad.wav similarity index 100% rename from public/audio/bda._navidad.wav rename to public/audio/1-bda._navidad.wav diff --git a/public/audio/cardeñas.wav b/public/audio/1-cardeñas.wav similarity index 100% rename from public/audio/cardeñas.wav rename to public/audio/1-cardeñas.wav diff --git a/public/audio/centro_comercial_holea.wav b/public/audio/1-centro_comercial_holea.wav similarity index 100% rename from public/audio/centro_comercial_holea.wav rename to public/audio/1-centro_comercial_holea.wav diff --git a/public/audio/colision.m4a b/public/audio/1-colision.m4a similarity index 100% rename from public/audio/colision.m4a rename to public/audio/1-colision.m4a diff --git a/public/audio/cruce_romeralejo.wav b/public/audio/1-cruce_romeralejo.wav similarity index 100% rename from public/audio/cruce_romeralejo.wav rename to public/audio/1-cruce_romeralejo.wav diff --git a/public/audio/don_bosco.wav b/public/audio/1-don_bosco.wav similarity index 100% rename from public/audio/don_bosco.wav rename to public/audio/1-don_bosco.wav diff --git a/public/audio/el_punto.wav b/public/audio/1-el_punto.wav similarity index 100% rename from public/audio/el_punto.wav rename to public/audio/1-el_punto.wav diff --git a/public/audio/el_árbol.wav b/public/audio/1-el_árbol.wav similarity index 100% rename from public/audio/el_árbol.wav rename to public/audio/1-el_árbol.wav diff --git a/public/audio/estación_de_ferrocarril.wav b/public/audio/1-estación_de_ferrocarril.wav similarity index 100% rename from public/audio/estación_de_ferrocarril.wav rename to public/audio/1-estación_de_ferrocarril.wav diff --git a/public/audio/estación_de_sevilla.wav b/public/audio/1-estación_de_sevilla.wav similarity index 100% rename from public/audio/estación_de_sevilla.wav rename to public/audio/1-estación_de_sevilla.wav diff --git a/public/audio/gasolinera.wav b/public/audio/1-gasolinera.wav similarity index 100% rename from public/audio/gasolinera.wav rename to public/audio/1-gasolinera.wav diff --git a/public/audio/gonzalo_de_berceo.wav b/public/audio/1-gonzalo_de_berceo.wav similarity index 100% rename from public/audio/gonzalo_de_berceo.wav rename to public/audio/1-gonzalo_de_berceo.wav diff --git a/public/audio/higueral_(fuerzas_armadas).wav b/public/audio/1-higueral_(fuerzas_armadas).wav similarity index 100% rename from public/audio/higueral_(fuerzas_armadas).wav rename to public/audio/1-higueral_(fuerzas_armadas).wav diff --git a/public/audio/hospital_jrj.wav b/public/audio/1-hospital_jrj.wav similarity index 100% rename from public/audio/hospital_jrj.wav rename to public/audio/1-hospital_jrj.wav diff --git a/public/audio/humilladero.wav b/public/audio/1-humilladero.wav similarity index 100% rename from public/audio/humilladero.wav rename to public/audio/1-humilladero.wav diff --git a/public/audio/isla_chica.wav b/public/audio/1-isla_chica.wav similarity index 100% rename from public/audio/isla_chica.wav rename to public/audio/1-isla_chica.wav diff --git a/public/audio/jcarobaroja.wav b/public/audio/1-jcarobaroja.wav similarity index 100% rename from public/audio/jcarobaroja.wav rename to public/audio/1-jcarobaroja.wav diff --git a/public/audio/julio_caro_baroja_(aqualon).wav b/public/audio/1-julio_caro_baroja_(aqualon).wav similarity index 100% rename from public/audio/julio_caro_baroja_(aqualon).wav rename to public/audio/1-julio_caro_baroja_(aqualon).wav diff --git a/public/audio/las_delicias.wav b/public/audio/1-las_delicias.wav similarity index 100% rename from public/audio/las_delicias.wav rename to public/audio/1-las_delicias.wav diff --git a/public/audio/magnolia.wav b/public/audio/1-magnolia.wav similarity index 100% rename from public/audio/magnolia.wav rename to public/audio/1-magnolia.wav diff --git a/public/audio/monumento_al_fútbol.wav b/public/audio/1-monumento_al_fútbol.wav similarity index 100% rename from public/audio/monumento_al_fútbol.wav rename to public/audio/1-monumento_al_fútbol.wav diff --git a/public/audio/nuevo_mercado.wav b/public/audio/1-nuevo_mercado.wav similarity index 100% rename from public/audio/nuevo_mercado.wav rename to public/audio/1-nuevo_mercado.wav diff --git a/public/audio/orden_baja.wav b/public/audio/1-orden_baja.wav similarity index 100% rename from public/audio/orden_baja.wav rename to public/audio/1-orden_baja.wav diff --git a/public/audio/palacio_de_deportes.wav b/public/audio/1-palacio_de_deportes.wav similarity index 100% rename from public/audio/palacio_de_deportes.wav rename to public/audio/1-palacio_de_deportes.wav diff --git a/public/audio/parque_sur.wav b/public/audio/1-parque_sur.wav similarity index 100% rename from public/audio/parque_sur.wav rename to public/audio/1-parque_sur.wav diff --git a/public/audio/plaza_de_los_dolores.wav b/public/audio/1-plaza_de_los_dolores.wav similarity index 100% rename from public/audio/plaza_de_los_dolores.wav rename to public/audio/1-plaza_de_los_dolores.wav diff --git a/public/audio/plaza_las_amapolas.wav b/public/audio/1-plaza_las_amapolas.wav similarity index 100% rename from public/audio/plaza_las_amapolas.wav rename to public/audio/1-plaza_las_amapolas.wav diff --git a/public/audio/plaza_nino_miguel.wav b/public/audio/1-plaza_nino_miguel.wav similarity index 100% rename from public/audio/plaza_nino_miguel.wav rename to public/audio/1-plaza_nino_miguel.wav diff --git a/public/audio/relaciones_laborales_(universidad).wav b/public/audio/1-relaciones_laborales_(universidad).wav similarity index 100% rename from public/audio/relaciones_laborales_(universidad).wav rename to public/audio/1-relaciones_laborales_(universidad).wav diff --git a/public/audio/universidad._avenida_de_las_artes.wav b/public/audio/1-universidad._avenida_de_las_artes.wav similarity index 100% rename from public/audio/universidad._avenida_de_las_artes.wav rename to public/audio/1-universidad._avenida_de_las_artes.wav diff --git a/public/audio/vista_alegre-universidad.wav b/public/audio/1-vista_alegre-universidad.wav similarity index 100% rename from public/audio/vista_alegre-universidad.wav rename to public/audio/1-vista_alegre-universidad.wav diff --git a/public/audio/zafra.wav b/public/audio/1-zafra.wav similarity index 100% rename from public/audio/zafra.wav rename to public/audio/1-zafra.wav diff --git a/public/audio/puente_de_vallecas.wav b/public/audio/131-puente_de_vallecas.wav similarity index 100% rename from public/audio/puente_de_vallecas.wav rename to public/audio/131-puente_de_vallecas.wav diff --git a/public/audio/2-nuevo_mercado.wav b/public/audio/2-nuevo_mercado.wav new file mode 100644 index 0000000..6d5e9f4 Binary files /dev/null and b/public/audio/2-nuevo_mercado.wav differ diff --git a/public/audio/2-villa_de_madrid.wav b/public/audio/2-villa_de_madrid.wav new file mode 100644 index 0000000..102ff78 Binary files /dev/null and b/public/audio/2-villa_de_madrid.wav differ diff --git a/public/audio/2-zafra.wav b/public/audio/2-zafra.wav new file mode 100644 index 0000000..c02b26b Binary files /dev/null and b/public/audio/2-zafra.wav differ diff --git a/public/logo192.png b/public/logo192.png index fc44b0a..efc1964 100644 Binary files a/public/logo192.png and b/public/logo192.png differ diff --git a/public/logo512.png b/public/logo512.png index a4e47a6..cd30ebe 100644 Binary files a/public/logo512.png and b/public/logo512.png differ diff --git a/public/manifest.json b/public/manifest.json index 080d6c7..03a3b54 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "App Megafonías", + "name": "App Megafonías", "icons": [ { "src": "favicon.ico", diff --git a/src/App.js b/src/App.js index 45c66ba..f905ff2 100644 --- a/src/App.js +++ b/src/App.js @@ -13,42 +13,33 @@ function App() { const datos = { "Línea 1": [ - "Zafra", - "Julio Caro Baroja (Aqualon)", - "Avda. Alemania (Esquina Ruiz de Alda)", - "Avda. Alemania (Plaza de Toros)", - "Bda. Navidad", - "Don Bosco", - "Plaza de los Dolores", - "Barriada del Carmen", - "Humilladero", - "Cardeñas", - "Orden Baja", - "Gonzalo de Berceo", - "Plaza Niño Miguel", - "Magnolia", - "Hospital JRJ", - "Plaza las Amapolas", - "Av. Andalucia (Castaño Robledo)", - "Monumento al Fútbol", - "Relaciones Laborales (Universidad)", - "Vista Alegre-Universidad", - "Centro Comercial Holea", - "Cruce Romeralejo", - "Universidad. Avenida de las Artes", - "Palacio de Deportes", - "Higueral (Fuerzas Armadas)", - "Bda. José Antonio", - "Isla Chica", - "Las Delicias", - "El Árbol", - "Gasolinera", - "Estación de Ferrocarril", - "El punto", - "Estación de Sevilla", - "Nuevo Mercado" + "Zafra", "Julio Caro Baroja (Aqualon)", "Avda. Alemania (Esquina Ruiz de Alda)", + "Avda. Alemania (Plaza de Toros)", "Bda. Navidad", "Don Bosco", + "Plaza de los Dolores", "Barriada del Carmen", "Humilladero", "Cardeñas", + "Orden Baja", "Gonzalo de Berceo", "Plaza Niño Miguel", "Magnolia", + "Hospital JRJ", "Plaza las Amapolas", "Av. Andalucia (Castaño Robledo)", + "Monumento al Fútbol", "Relaciones Laborales (Universidad)", + "Vista Alegre-Universidad", "Centro Comercial Holea", "Cruce Romeralejo", + "Universidad. Avenida de las Artes", "Palacio de Deportes", + "Higueral (Fuerzas Armadas)", "Bda. José Antonio", "Isla Chica", + "Las Delicias", "El Árbol", "Gasolinera", "Estación de Ferrocarril", + "El punto", "Estación de Sevilla", "Nuevo Mercado" ], - "Línea 5000": ["Puente de Vallecas"] + "Línea 2": [ + "Zafra", "Nuevo Mercado", "Villa de Madrid", "Avenida Italia", + "Estación de Sevilla", "El Punto", "Estación de Ferrocarril", "Juzgados", + "Barrio Obrero", "El Porvenir", "Las Delicias", "Isla Chica", + "Bda, José Antonio", "Fuerzas Armadas Los Rosales", "Palacio de Deporte", + "Ciencias de la Educación (Universidad)", "Biblioteca (Universidad)", + "Monumento al Fútbol", "Relaciones Laborales (Universidad)", + "Vista Alegre-Universidad", "Centro Comercial Holea", "Plaza las Amapolas", + "Hospital JRJ", "Magnolia", "Orden Alta", "Gonzalo de Berceo (Alto)", + "Gonzalo de Berceo (Bajo)", "Orden Baja", "Legión Española", "Cardeñas", + "Humilladero", "Bda. del Carmen", "Santa Lucía", "Santa Eulalia", + "Bda. Navidad", "Molino de la Vega", "Paseo de las Palmeras", + "Julio Caro Baroja (Aqualon)" + ], + "Línea 131": ["Puente de Vallecas"] }; const handleLineaChange = (event) => { @@ -76,30 +67,38 @@ function App() { audio.pause(); } - const playAudio = (audioFile) => { - const nuevoAudio = new Audio(audioFile); - nuevoAudio.play().catch(error => { - console.error("Error al reproducir audio:", error); - }); - return nuevoAudio; - }; - - // Play "parada_actual" or "parada_siguiente" FIRST - const paradaTipoAudio = playAudio(`/audio/parada_${tipoParada}.wav`); - setAudio(paradaTipoAudio); // Update state immediately - audioRef.current = paradaTipoAudio; // Set audio ref - paradaTipoAudio.volume = volume; // Set volume - - // Then, if a specific stop is selected, play that audio AFTER - if (datos[lineaSeleccionada] && datos[lineaSeleccionada].includes(paradaSeleccionada)) { - paradaTipoAudio.onended = () => { // Play stop audio after type audio - let paradaAudioFile = ""; - paradaAudioFile = `/audio/${paradaSeleccionada.toLowerCase().replace(/ /g, "_")}.wav`; // Dynamic file naming - const paradaAudio = playAudio(paradaAudioFile); - setAudio(paradaAudio); // Update state again - audioRef.current = paradaAudio; // Set audio ref - paradaAudio.volume = volume; // Set volume + if (lineaSeleccionada && paradaSeleccionada) { + const playAudio = (audioFile) => { + const nuevoAudio = new Audio(audioFile); + nuevoAudio.play().catch(error => { + console.error("Error al reproducir audio:", error); + }); + return nuevoAudio; }; + + if (tipoParada === "noUsar") { + let paradaAudioFile = `/audio/${lineaSeleccionada.split(" ")[1]}-${paradaSeleccionada.toLowerCase().replace(/ /g, "_")}.wav`; + const paradaAudio = playAudio(paradaAudioFile); + setAudio(paradaAudio); + audioRef.current = paradaAudio; + paradaAudio.volume = volume; + } else { + const paradaTipoAudio = playAudio(`/audio/parada_${tipoParada}.wav`); + setAudio(paradaTipoAudio); + audioRef.current = paradaTipoAudio; + paradaTipoAudio.volume = volume; + + paradaTipoAudio.onended = () => { + let paradaAudioFile = `/audio/${lineaSeleccionada.split(" ")[1]}-${paradaSeleccionada.toLowerCase().replace(/ /g, "_")}.wav`; + const paradaAudio = playAudio(paradaAudioFile); + setAudio(paradaAudio); + audioRef.current = paradaAudio; + paradaAudio.volume = volume; + }; + } + } else { + console.log("Por favor, selecciona una línea y una parada."); + alert("Para reproducir el audio, selecciona una línea y una parada."); } }; @@ -112,16 +111,16 @@ function App() { useEffect(() => { const cargarAudios = () => { - // Preload audio files (optional but recommended) const audioActual = new Audio(`/audio/parada_actual.wav`); const audioSiguiente = new Audio(`/audio/parada_siguiente.wav`); - // Dynamically preload audio files for each stop - datos["Línea 1"].forEach(parada => { - const audio = new Audio(`/audio/${parada.toLowerCase().replace(/ /g, "_")}.wav`); - }); + for (const linea in datos) { + datos[linea].forEach(parada => { + const audio = new Audio(`/audio/${parada.toLowerCase().replace(/ /g, "_")}.wav`); + }); + } - const audioVallecas = new Audio(`/audio/vallecas.wav`); // Preload new audio file + const audioVallecas = new Audio(`/audio/vallecas.wav`); const audioColision = new Audio(`/audio/colision.m4a`); }; @@ -183,6 +182,16 @@ function App() { /> Parada siguiente +
@@ -205,7 +214,7 @@ function App() {
);