MusicXD / static /js /script.js
JairoDanielMT's picture
Upload 12 files
1346bcc
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.';
}
}