Myself_Emi_V / Repro.html
Emuixom's picture
Create Repro.html
a780f3d verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Reproductor de Música</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
}
#player {
width: 100%;
max-width: 600px;
height: 350px;
margin: 20px auto;
}
</style>
</head>
<body>
<h1>Reproductor de Música desde YouTube</h1>
<input type="text" id="youtube-url" placeholder="Ingresa la URL de YouTube" style="width: 80%; padding: 10px;">
<button onclick="loadVideo()">Cargar Video</button>
<div id="player"></div>
<script>
// Cargar el iframe de YouTube de manera dinámica
function onYouTubeIframeAPIReady() {
window.player = new YT.Player('player', {
height: '350',
width: '600',
videoId: '', // Inicialmente vacío
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// Cuando el reproductor está listo
function onPlayerReady(event) {
console.log("Reproductor listo.");
}
// Detectar el estado del video (por ejemplo, si terminó)
function onPlayerStateChange(event) {
if (event.data === YT.PlayerState.ENDED) {
console.log("El video terminó.");
}
}
// Cargar un nuevo video usando la URL de YouTube
function loadVideo() {
var url = document.getElementById('youtube-url').value;
var videoId = extractVideoId(url);
if (videoId) {
player.loadVideoById(videoId);
} else {
alert('URL de YouTube no válida');
}
}
// Extraer el video ID de una URL de YouTube
function extractVideoId(url) {
var videoId = '';
var regex = /(?:https?:\/\/(?:www\.)?youtube\.com\/(?:[^\/]+\/.*\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
var match = url.match(regex);
if (match) {
videoId = match[1];
}
return videoId;
}
// Cargar la API de YouTube
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>
</body>
</html>