Spaces:
Paused
Paused
| const songSelect = document.getElementById('songSelect'); | |
| const player = document.getElementById('player'); | |
| const audioSource = document.getElementById('audioSource'); | |
| const songImage = document.getElementById('songImage'); | |
| const downloadMessage = document.getElementById('downloadMessage'); | |
| // Funci贸n para cargar la canci贸n y la imagen al seleccionar una canci贸n | |
| songSelect.addEventListener('change', async function () { | |
| const selectedSong = songSelect.value; | |
| // Verifica si la opci贸n seleccionada no es "none" | |
| if (selectedSong !== "none") { | |
| const songUrl = `/music/${selectedSong}`; | |
| const imageUrl = `/static/img/${selectedSong.replace('.mp3', '')}.jpg`; | |
| try { | |
| await Promise.all([ | |
| loadAudio(songUrl), | |
| loadImage(imageUrl) | |
| ]); | |
| // Ambos han cargado correctamente, ahora podemos reproducir la canci贸n | |
| player.load(); | |
| player.play(); | |
| songImage.style.display = "block"; // Show the songImage element | |
| } catch (error) { | |
| console.error('Error al cargar la canci贸n o la imagen:', error); | |
| } | |
| } else { | |
| // Si la opci贸n seleccionada es "none", oculta la imagen del logo | |
| songImage.src = ""; | |
| location.reload(); // Refresh the page | |
| } | |
| }); | |
| // Funci贸n para cargar la canci贸n | |
| async function loadAudio(url) { | |
| return new Promise((resolve, reject) => { | |
| audioSource.src = url; | |
| player.load(); | |
| player.oncanplaythrough = resolve; | |
| player.onerror = reject; | |
| }); | |
| } | |
| // Funci贸n para cargar la imagen | |
| async function loadImage(url) { | |
| return new Promise((resolve, reject) => { | |
| songImage.src = url; | |
| songImage.onload = resolve; | |
| songImage.onerror = reject; | |
| }); | |
| } | |
| // Funci贸n para descargar una canci贸n | |
| async function downloadSong() { | |
| try { | |
| const urlInput = document.getElementById('urlInput'); | |
| const response = await fetch('/download', { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json' | |
| }, | |
| body: JSON.stringify({ | |
| url: urlInput.value | |
| }) | |
| }); | |
| const data = await response.json(); | |
| downloadMessage.textContent = `Descarga exitosa. T铆tulo: ${data.message}, se autorefrescar谩 en 5 segundos.`; | |
| // refresh page to update song list | |
| setTimeout(function () { | |
| location.reload(); | |
| }, 5000); | |
| } catch (error) { | |
| console.error('Error al descargar la canci贸n:', error); | |
| downloadMessage.textContent = 'Error al descargar la canci贸n.'; | |
| } | |
| } | |