Múltiples canciones (Playlist) en HTML5


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.

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/AVvXsEiDZgShgKM44R2OY91lLVdWxncwcCuR0N7G51UwzVl6YTsSp1PEYQ_3vLsCGg9-Wq9II1VMxFpe_eL_6uXBKk9176u5wh1epdjB4wx7JplJyieEURKK6tXV6KBuOZ6ZF46xpA4KM4Jgm-Q/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/AVvXsEgO7iH1_H1y7a7JvIgBVTgkBLu_jzTUKSbaCfWFdiGRvNB_W1VXhXtqhhGOgfbyzX1-9yIFIamgLbUzkNw6-jB8bbwMr6YgpJq-rs-8S0hs6OFaOo5h94s5GDs3No67sI87KeSRS3Rp1hY/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'/>
</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 azul. 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 rojo agrega los nombres de las canciones.

Si quieres 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

Fuente | CiudadBlogger

WebApps para Android (Add to home Screen)



Google nos sorprende con una nueva actualización de su navegador web Chrome para Android. La recientemente lanzada versión (32) de Google Chrome, incorpora una característica muy reclamada durante muchos años por los desarrolladores y diseñadores web: La opción “Agregar a Pantalla Principal” más recientemente llamada "Instalar Aplicación Web" con Android Instant Apps.

Si bien Chrome para Android tuvo desde sus inicios esta característica, la misma no sacaba partido por sobre la clásica opción de agregar un acceso directo a una web en cualquier escritorio o pantalla de inicio de un dispositivo.

Por otra parte iOS, como bien contamos en el inicio de la nota mencionada, mantuvo por siempre la característica de poder agregar a la pantalla de inicio un sitio web, cuya estructura HTML cumpliera un cierto estándar marcado por Apple, de manera tal que dicha WebApp se instale y luzca como una aplicación nativa en los dispositivos móviles.

La voz del desarrollador

Por fin, luego de tantos años, Google se preocupó por escuchar y hacerle caso a sus principales feligreses, quienes verdaderamente construyen un sinfín de herramientas y utilidades diarias, alrededor de los navegadores más populares con la tecnología más usada en el momento.

Así es como, a partir de la versión 31 Beta de Chrome, comenzó el cambio hacia el ecosistema que permite instalar un sitio web con características específicas incluidas como declaraciones en sus etiquetas <Meta>, que permiten convertir a este en una App más dentro de nuestros dispositivos móviles. Google bautizó esta característica como (full-screen App mode).

Lo que básicamente ocurre en Android, al igual que lo hacemos en Safari para iOS, es crear un acceso directo a nuestra WebApp en la pantalla y que esta se vea al inicializarla como una aplicación nativa dentro del dispositivo.

Manteniendo la compatibilidad

Muchos desarrolladores optaron por plasmar esta característica específica dentro de sus sitios web, y que estos se integren al escritorio de iOS como una aplicación nativa. Google por su parte, implementó algunos estándares basados en las etiquetas , y a su vez creó compatibilidad con las etiquetas de Apple para que un desarrollador/diseñador web no deba intervenir sus trabajos uno por uno.

Condimentos para la compatibilidad de una web

Hagamos un repaso de lo que Google nos ofrece para poder instalar en la pantalla de inicio un sitio web, de manera óptima dentro del sistema operativo Android.

WebApp Capable

Dentro de la página principal de la web, debemos incluir la siguiente característica que permite compatibilizar la misma con el escritorio de Android, integrándose y ejecutándose en modo (full-screen webapp).

Bajo el Código <head> pegamos

<meta name="mobile-web-app-capable" content="yes">

Si estudiamos esta misma característica dentro del tag utilizado en iOS, encontramos que sólo cambia su nombre, anteponiendo la palabra (Apple).

Definir el nombre de la webApp

Chrome no implementa dentro de su estándar una etiqueta que permita definir el nombre con el que se creará el acceso directo a la aplicación. Por defecto tomará el título impuesto en la página a través de la correspondiente etiqueta.

Apple, por su parte, sí definió una etiqueta específica en la cual podemos definir el nombre que llevará la aplicación (apple-mobile-web-app-title). Al momento de implementar esta solución en Chrome, debemos tener cuidado en el nombre seleccionado para identificar la página web, ya que debe ser corto.

Si bien algunos íconos dentro del menú de aplicaciones de Chrome poseen su nombre separado en dos renglones, aquellos que se sitúan en la pantalla inicial del sistema operativo se ven limitados entre 12 y 14 caracteres en aquellos smartphones que no poseen soporte hdpi.

ShortCut Icon

Para identificar la webApp en la pantalla de Android, necesitamos también un ícono que la identifique, el cual será visualizado en esta. En base a la compatibilidad con los tags de Apple, son soportados los tags (apple-touch-icon) y (apple-touch-icon-precomposed), pero al igual que lo explicado en el Tag (web-cappable), Google recomienda adoptar el tag (shortcut icon), definiendo la imagen en un tamaño de 196×196 píxeles.

El tamaño mencionado es soportado por múltiples resoluciones, aunque de no implementarlo, Chrome usará por defecto el tag (apple-touch-icon) de 128×128 píxeles, propio de iOS. Si optamos por no agregar un ícono específico para esta resolución, y tampoco utilizamos el tag de iOS, entonces Chrome definirá por defecto utilizar el clásico (favicon).

El codigo bajo la etiqueta <head> iria algo así.

<meta name="mobile-web-app-capable" content="yes"/>
<link rel="shortcut icon" sizes="196x196" href="URL del Icono"/>

Con estos sencillos pasos, podemos agregar una WebApp a la pantalla de nuestro equipo, y que luzca realmente como una Aplicación instalada.
Con estos sencillos pasos, podemos agregar una WebApp a la pantalla de nuestro equipo, y que luzca realmente como una Aplicación instalada.

Ventajas y desventajas de esta característica

A pesar del gran salto que dio Android, y de la antigüedad de esta característica en iOS, podemos encontrar algunas diferencias notorias entre las plataformas mencionadas. Por ejemplo en iOS, cuando cargamos una WebApp, y pasamos a utilizar otras aplicaciones, y luego retornamos a la webApp, notaremos que la misma vuelve a cargarse desde la página inicial.

En Android, esto no pasa. La WebApp mantiene su estado, volviendo a verse en la página hasta donde habíamos navegado. En este Aspecto, Android demuestra un sistema verdaderamente multitarea respecto a iOS.

Por su parte, iOS nos brinda la característica de poder incluir una Splash Screen, que termine de mostrar nuestra WebApp como una App nativa. Android por el momento no soporta esta característica, como tampoco permite especificar un título para la WebApp mediante un Tag específico.

iOS, al navegar dentro de las aplicaciones abiertas, muestra nuestra WebApp con el nombre especificado en el tag (apple-mobile-web-app-title), mientras que Android sólo muestra “Web App” o “Aplicación web” como nombre. Tampoco visualiza la misma con el ícono correspondiente, sino con el ícono de Chrome, acompañado de la flecha propia de un acceso directo.

La WebApp ya luce como una aplicación nativa, aunque al visualizar las Apps abiertas en Android, esta lucirá como un acceso directo de Chrome con el nombre "Aplicación Web".
La WebApp ya luce como una aplicación nativa, aunque al visualizar las Apps abiertas en Android, esta lucirá como un acceso directo de Chrome con el nombre “Aplicación Web”.
Android incorporó una característica para cuando una WebApp nos lleva hacia otra dirección web, distinta a su URL, esta será mostrada en el extremo superior de la pantalla de Android. iOS no tiene disponible esta característica por lo tanto, si salimos de la WebApp hacia otra URL, nunca nos enteraremos.

Otra ventaja de las WebApps en Android es que mantienen un registro de las páginas navegadas, por lo tanto, el botón Atrás de Android nos permitirá retornar hacia el inicio de la WebApp. iOS no posee esta característica, a menos que agreguemos los botones pertinentes dentro de la WebApp correspondiente.

El problema surge cuando navegamos la Web a través del navegador Safari. El tener un botón para navegar hacia atrás/adelante, duplicaría los botones que permiten lograr esta acción, ya que la barra de herramientas de Safari cuenta con estos botones.

Cuando salimos de nuestra WebApp hacia un link externo, Google para Android visualizará en el extremo superior la URL hacia la cual ha navegado, por una cuestión de seguridad y privacidad del usuario.
Cuando salimos de nuestra WebApp hacia un link externo, Google para Android visualizará en el extremo superior la URL hacia la cual ha navegado, por una cuestión de seguridad y privacidad del usuario.

Conclusión

Si bien Android no ha incorporado una batería de novedades dentro de la opción “Agregar a Pantalla Ppal”, al menos ha dado un gran paso, respetando las necesidades de los desarrolladores web. Este reclamo se mantuvo con los años porque, a pesar de existir Google Play y su ecosistema de comercialización de Apps para móviles, Google mantiene una filosofía importante del lado de Chrome Desktop, promoviendo el desarrollo de WebApps y no de aplicaciones nativas.

Las WebApps benefician a Chrome tanto en los escritorios Windows, Linux, Mac, como también a las novedosas Chromebooks, un estilo de computadora que viene imponiéndose desde hace algunos años. Esperemos que Google siga potenciando a Android y Chrome con mayores características pensadas exclusivamente para los desarrolladores y diseñadores web.

Fuente | DonWeb News

Quizás te interese: Soporte de Color Desde Chrome 39 en Android

Ocultar/Eliminar el mensaje "Mostrando entradas con la etiqueta..."



Cuando se está buscando una entrada dentro del blog y usamos las etiquetas para localizarla, aparece un recuadro con el mensaje:

Mostrando entradas con la etiqueta XXXXX. Mostrar todas las entradas.




O bien, al hacer una búsqueda dentro del blog aparece el mensaje:


Ninguna entrada coincide con la consulta. Mostrar todas las entradas.



Para OCULTAR este mensaje hacemos lo siguiente:

Entra a Plantilla | Edición de HTML y antes de ]]></b:skin> pega esto:

.status-msg-wrap {visibility:hidden;display:none;}

Guarda los cambios y listo.

Para ELIMINAR el mensaje:

Entra a Plantilla | Edición de HTML, marca la casilla Expandir plantillas de artilugios y busca este código:

<b:include data='top' name='status-message'/>

Elimínalo y guarda los cambios.


Con cualquiera de estos dos métodos, ese recuadro dejará de aparecer en nuestras búsquedas.

Fuente | CiudadBlogger

Personalizar los links Entradas antiguas, Entradas mas recientes



Los links del pie de navegación, o sea, esos que dicen Entradas antiguas - Entradas más recientes son de mucha utilidad para el lector pues facilita la navegación dentro del blog, sin embargo no siempre se ven muy atractivos, así que podemos personalizarlos para poner otro texto o sustituirlos con algún ícono.

Entra a Plantilla | Edición de HTML, y busca esto:

<b:if cond='data:newerPageUrl'>
<span id='blog-pager-newer-link'>
<a class='blog-pager-newer-link' expr:href='data:newerPageUrl + &quot;?max-results&quot; ' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
</span>
</b:if>

La parte que está en color rojo es la que muestra el texto Entradas más recientes, puedes eliminarlo y poner cualquier otro texto, o bien, cambiarlo por una imagen, sólo tendrías que sustituir lo que está en rojo por esto:

<img src='URL de la imagen'/>

Ahora buscamos un poco más abajo y encontramos este código:

<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + "_blog-pager-older-link"' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
</span>
</b:if>

Este es el que muestra el link de Entradas antiguas. Haremos lo mismo que en el anterior cambiando lo que está en color rojo.

Y por último encontramos abajo este código:

<b:if cond='data:blog.homepageUrl != data:blog.url'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
<b:else/>
<b:if cond='data:newerPageUrl'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
</b:if>
</b:if>

Este es el que muestra el texto Página principal, igual se cambia lo que está en rojo por otro texto o imagen.

Fuente | CiudadBlogger

Como poner la barra de carga de Youtube en Blogger



Si somos observadores cada vez que entramos a YouTube, vemos una barra de progreso de carga roja ,en la parte superior de la página de izquierda a derecha. Para mi esta super bien.



Y te preguntas ...?... ¿Esto seria posible ponerlo en mi blogs de Blogger?...la respuesta es por supuesto que sí.

Es un javascript para progreso de barra igual que YouTube y bueno no requiere de jquery  con tamaño muy pequeño , así que no te preocupes que no sobre cargara tu blogs de blogger. Mas bien dará un aspecto muy elegante a tu blog.

Ahora vamos a ponerlo en nuestro blogs a continuación: Solamente vas a hacer un paso...

Coloca este codigo por Encima de la etiqueta :  </body>

<script type='text/javascript'>
//<![CDATA[
var Nanobar=function(){var c,d,e,f,g,h,k={width:"100%",height:"2px",zIndex:9999,top:"0"},l={width:0,height:"100%",clear:"both",transition:"height .3s"};c=function(a,b){for(var c in b)a.style[c]=b[c];a.style["float"]="left"};f=function(){var a=this,b=this.width-this.here;0.1>b&&-0.1<b?(g.call(this,this.here),this.moving=!1,100==this.width&&(this.el.style.height=0,setTimeout(function(){a.cont.el.removeChild(a.el)},100))):(g.call(this,this.width-b/4),setTimeout(function(){a.go()},16))};g=function(a){this.width=
a;this.el.style.width=this.width+"%"};h=function(){var a=new d(this);this.bars.unshift(a)};d=function(a){this.el=document.createElement("div");this.el.style.backgroundColor=a.opts.bg;this.here=this.width=0;this.moving=!1;this.cont=a;c(this.el,l);a.el.appendChild(this.el)};d.prototype.go=function(a){a?(this.here=a,this.moving||(this.moving=!0,f.call(this))):this.moving&&f.call(this)};e=function(a){a=this.opts=a||{};var b;a.bg=a.bg||"#db3131";this.bars=[];b=this.el=document.createElement("div");c(this.el,
k);a.id&&(b.id=a.id);b.style.position=a.target?"relative":"fixed";a.target?a.target.insertBefore(b,a.target.firstChild):document.getElementsByTagName("body")[0].appendChild(b);h.call(this)};e.prototype.go=function(a){this.bars[0].go(a);100==a&&h.call(this)};return e}();
var nanobar = new Nanobar();nanobar.go(30);nanobar.go(60);nanobar.go(100);
//]]>
</script>

Ahora si deseas cambiarlo el grosor de la barra de progreso :

height:"2px"

Si deseas cambiar el color rojo por otro busca este código :

a.bg=a.bg| | "#db3131"

Osea cambialo esto  : #db3131  por otro color que deseas ponerlo.

Fuente | DanyDanielRT