Múltiples canciones (Playlist) en HTML5


En la entrada anterior vimos cómo insertar música en el blog usando la etiqueta <audio>, lo mismo que videos con la etiqueta <video>.
Ahora veremos cómo crear un pequeño reproductor para reproducir múltiples canciones en HTML5, es decir, cómo crear un playlist con el elemento <audio>

Este es un sencillo reproductor de MP3 que permite incluir múltiples canciones con loop de manera que cuando acabe una canción pasará a la siguiente por si sola. El único problema es que sólo admite MP3 así que en el navegador Opera no se escuchará. Con el resto de los navegadores que admitan el elemento <audio> no habrá ningún problema.

Puedes verlo en funcionamiento aquí mismo, ya sea que des play al reproductor, o selecciones una canción de la lista.


Parece que fuera complejo pero no es así, de hecho el script que usa es muy corto, prácticamente todo es CSS.
Para poner este reproductor de múltiples canciones en tu blog entra en Plantilla | Edición de HTML y antes de </body> agrega lo siguiente:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js' type='text/javascript'/>
<script>
//<![CDATA[
var audio;var playlist;var tracks;var current;initaudio();function initaudio(){current=0;audio=$('audio');playlist=$('#playlist');tracks=playlist.find('li a');len=tracks.length-1;audio[0].volume=1;playlist.find('a').click(function(e){e.preventDefault();link=$(this);current=link.parent().index();runaudio(link,audio[0])});audio[0].addEventListener('ended',function(e){current++;if(current>len){current=0;link=playlist.find('a')[0]}else{link=playlist.find('a')[current]}runaudio($(link),audio[0])})}function runaudio(link,player){player.src=link.attr('href');par=link.parent();par.addClass('active').siblings().removeClass('active');audio[0].load();audio[0].play()}
//]]>
</script>
Si ya tuvieras jQuery en tu plantilla entonces omite la primera línea.
Luego, ahí mismo en la Edición HTML busca la etiqueta ]]></b:skin> y antes de ella pega los estilos:
#playlist, #player {
width: 400px; /* Ancho de todo el contenedor */
padding: 20px;
margin: 0 auto;
display: block;
text-align: center;
}
#player {
/* Imagen de fondo del primer contenedor */
background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7X-ZxeKKbMwmnhh1psLbIiA7w-XGBZdb9M2CFoTzr037pBeRClzeZnzF0xawuzT4uTxJnK8lqimZ1aPtlcbc5Mk3_ne1v3p50PXkLkhaGVmNsg2d7uw0gMc6lJPULEf3q0iSO83dBgrs/s300/bg.png);
padding: 10px 20px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
audio {
width:300px; /* Ancho del reproductor */
margin:0 auto;
display: inline-block
}
#player:after {
/* Imagen animada */
content: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8YZW0bLhcweon-HDYyYyMraqFY8mPfWatn19Hv61H5lcggc7woe4LolcBeYLhDAiyZcMvUgrO2quNurLfa9UKAw1kq75a9NeBbnHaxH4GjYJqOEJGfsZcOT-D1756Lifljcb4P-8HUWc/s75/equalizador.gif);
padding-left: 10px;
}
#playlist {
margin: 0 auto 20px auto;
display: block;
background: #424242; /* Fondo del segundo contenedor */
border-top: 5px solid #9F111B;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
text-align: left;
font-size: 12px; /* Estilos de fuente */
font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
font-weight: normal;
}
#playlist li, #playlist ul li {
background-image: none;
list-style-type: none;
padding: 0;
margin: 0;
}
#playlist li a {
color: #CCC; /* Color de las canciones */
background: #222; /* Fondo de las canciones */
padding: 7px 5px;
display: block;
padding-left: 10px;
text-decoration: none;
}
#playlist li a:hover{
background: #9F111B; /* Color de fondo al pasar el cursor */
text-decoration: none;
}
#playlist .active a {
color: #B11623; /* Color de la canción activa */
font-style: italic;
text-decoration: none;
}
#playlist .active a:before {
content: "\25B6";
color: #CCC;
font-style: normal;
padding-right: 8px;
}
#playlist .active a:hover {
color: #222; /* Color de la canción activa al pasar el cursor */
}
Por último, en un gadget HTML/Javascript o en una entrada de tu blog agrega la estructura:
<div id='player'>
<audio controls='' id='audio' preload='auto' tabindex='0' type='audio/mpeg'>
<source src='URL de la primera canción' type='audio/mp3'/>
Hola, tu navegador no está actualizado y no puede mostrar este contenido.
</audio>
</div>
<ul id='playlist'>
<li class='active'><a href='URL de la primera canción'>Nombre de la primera canción</a></li>
<li><a href='URL de la segunda canción'>Nombre de la segunda canción</a></li>
<li><a href='URL de la tercera canción'>Nombre de la tercera canción</a></li>
</ul>
Ahí deberás poner las URLs de tus canciones donde se señala en color rojo. Nota que la URL de la primera canción se agrega dos veces, una dentro del reproductor y otra dentro de la lista de reproducción. Todas las URLs de tus canciones deberán ser en formato MP3.
En color azul agrega los nombres de las canciones.
Si quisieras personalizarlo puedes hacerlo siguiendo las anotaciones que está en color verde, ahí verás dónde se cambian los tamaños, colores, fondos, etc.

La imagen del ecualizador es un GIF animado, puedes eliminarlo si crees que es muy llamativo, o puedes sustituirlo por el logotipo de tu blog o cualquier otra imagen.

Para añadir más canciones sólo agrega antes del </ul> una línea como esta por cada canción extra que quieras añadir al reproductor:
<li><a href='URL de la otra canción'>Nombre de la otra canción</a></li>

Y si quisieras crear un reproductor de videos usando el elemento <video> igual en HTML5 entonces añadirías este código antes de </body>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js' type='text/javascript'/>
<script>
//<![CDATA[
var video;var vplaylist;var vtracks;var vcurrent;initvideo();function initvideo(){vcurrent=0;video=$('video');vplaylist=$('#vplaylist');vtracks=vplaylist.find('li a');vlen=vtracks.length-1;video[0].volume=1;vplaylist.find('a').click(function(e){e.preventDefault();link=$(this);vcurrent=link.parent().index();runvideo(link,video[0])});video[0].addEventListener('ended',function(e){vcurrent++;if(vcurrent>vlen){vcurrent=0;link=vplaylist.find('a')[0]}else{link=vplaylist.find('a')[vcurrent]}runvideo($(link),video[0])})}function runvideo(link,player){player.src=link.attr('href');par=link.parent();par.addClass('active').siblings().removeClass('active');video[0].load();video[0].play()}
//]]>
</script>
Así mismo omite la primera línea si es que ya tienes jQuery en tu plantilla.
Luego, antes de ]]></b:skin> se agregan los estilos:
#vplaylist, #vplayer {
width: 400px; /* Ancho de todo el contenedor */
padding: 20px;
margin: 0 auto;
display: block;
text-align: center;
}
#vplayer {
padding: 10px 20px;
background: #000; /* Color de fondo primer del contenedor */
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
video {
width:400px; /* Ancho del reproductor */
padding-top: 10px;
margin:0 auto;
display: inline-block
}
#vplaylist {
margin: 0 auto 20px auto;
display: block;
background: #424242; /* Color de fondo del segundo contenedor */
border-top: 5px solid #9F111B;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
text-align: left;
font-size: 12px;
font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
font-weight: normal;
}
#vplaylist li, #vplaylist ul li {
background-image: none;
list-style-type: none;
padding: 0;
margin: 0;
}
#vplaylist li a:hover{
background: #9F111B; /* Color de fondo al pasar el cursor */
text-decoration: none;
}
#vplaylist .active a {
color: #B11623; /* Color de la canción activa */
font-style: italic;
text-decoration: none;
}
#vplaylist .active a:before {
content: "\25B6";
color: #CCC;
font-style: normal;
padding-right: 8px;
}
#vplaylist .active a:hover {
color: #222; /* Color de la canción activa al pasar el cursor */
}
Y por último en tu gadget o entrada del blog agrega esto:
<div id='vplayer'>
<video controls='' height='224' width='400' id='video' preload='auto' tabindex='0' type='video/mp4'>
<source src='URL del primer video' type='video/mp4'/>
Hola, tu navegador no está actualizado y no puede mostrar este contenido.
</video>
</div>
<ul id='vplaylist'>
<li class='active'><a href='URL del primer video'>Nombre del primer video</a></li>
<li><a href='URL del segundo video'>Nombre del segundo video</a></li>
<li><a href='URL del tercer video'>Nombre del tercer video</a></li>
</ul>

Ahí también deberás cambiar las URLs de los videos en color rojo pero esta vez los archivos serán en formato MP4. De igual forma, la URL del primer video va dos veces.
Los nombres de los videos se cambian en la parte de color azul. En negrita verás dónde se cambia el tamaño del reproductor.

Para añadir más videos deberás también agregar antes del </ul> una línea como esta:
<li><a href='URL del otro video'>Nombre del otro video</a></li>

El resultado será este:



De esta manera podrás tener un reproductor de audio o video con playlist en HTML5. El único problema será el navegador Opera, pero el resto de los navegadores modernos no tendrán problema.

Vía | Last Rose
Comparte este artículo:
+
Pagina Anterior
« Entradas mas Recientes
Pagina Siguiente
Siguiente Publicación »
0 Komentar untuk "Múltiples canciones (Playlist) en HTML5"

Terima Kasih Sudah Berkomentar
 
Back To Top