Cómo crear un elegante reproductor de audio web

Todavía recuerdo que a principios de la década de 2000 había muchas restricciones para reproducir multimedia (audio y video) en línea. Es fácil dar las cosas por sentadas, especialmente porque hoy en día tenemos muchos canales para reproducir audio como last.fm o video como Youtube.

En este artículo, como sugiere el título, crearemos un reproductor de audio web. Si utiliza un sitio web de podcasting y desea crear un reproductor multimedia que se adapte a su diseño web general, entonces este artículo puede ser para usted.

Haga clic en el botón de demostración para ver cómo se ve el reproductor de audio.

Cómo personalizar el reproductor de audio SoundCloud

Cómo personalizar el reproductor de audio SoundCloud

La transmisión de audio ha estado en Internet desde 1990 y no es muy popular ... Lee mas

Lo que necesitamos

Antes de que podamos crear un reproductor de audio, debemos preparar algunos elementos clave para él: jugador, jQuery y un conjunto de iconos de fuentes llamados fuente genial.

Primero, vamos Descargar jPlayer.jPlayer es un complemento de jQuery que nos permite lanzar fácilmente medios en páginas web. Siempre que sepa HTML y CSS, puede comenzar.

jPlayer es esencialmente un complemento de jQuery, por lo que también lo necesitamos Descargar jQuery Para trabajar, al momento de escribir, jQuery se encuentra actualmente en la versión 1.8.2.También necesitamos íconos para la interfaz gráfica del reproductor multimedia, esta vez usaremos FontAwesome proporciona iconos.

Luego extraemos todos los archivos descargados y colocamos todo, incluidos los archivos jPlayer, jQuery y fuentes en las carpetas correspondientes. jquery.js y jquery.jplayer.min.js al documento html de la siguiente manera.


<link rel="stylesheet" href="https://www.hongkiat.com/blog/web-audio-player/css/normalize.css">
<link type="text/css" href="css/style.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.jplayer.min.js"></script>

Como puede ver, además de las bibliotecas jQuery y jPlayer, tenemos dos archivos CSS vinculados allí. normalize.css restablecerá o normalizará los estilos del navegador para que nuestras páginas web se muestren de manera más consistente en diferentes navegadores, mientras que este último, style.css aquí ponemos nuestros principales estilos.

audio

Para propósitos de demostración en esta lección usaremos kelly anderson De su conversación en TEDx Phoenix. Bueno, en realidad es video, pero solo puedes extraer audio con una de las siguientes herramientas: Fácil descarga en Youtube (extensión FF) o KeepVid.com.

Crear marcado HTML

Ahora es el momento de crear la etiqueta HTML para el reproductor de audio, a continuación se muestra la etiqueta HTML que necesitamos. Lo importante de esta etiqueta es esto id=jquery_jplayer_1 propiedades asignadas a div Contiene todos ellos. Este identificador se utilizó posteriormente para asociar esta estructura con jPlayer mediante la función jQuery.

Además, todas las clases asignadas a las siguientes estructuras, incl. jp-play, jp-pause, jp-mute y jp-unmute Ambas son clases estándar utilizadas en jPlayer. Le recomiendo que no cambie estas clases, así como la propiedad id, para que sea más fácil cuando diseñemos el reproductor de audio más tarde (a menos que realmente sepa lo que está haciendo).


<div id="jquery_jplayer_1" class="jp-jplayer"></div>

<div id="jp_container_1" class="jp-audio">
  <div class="jp-type-single">

    <div class="jp-title">
      <ul>
        <li>TEDxPhoenix - Kelli Anderson - Disruptive Wonder for a Change</li>
      </ul>
    </div>

    <div class="jp-gui jp-interface">

        <ul class="jp-controls">
          <li><a href="https://www.hongkiat.com/blog/web-audio-player/javascript:;" class="jp-play" tabindex="1">&#61515;</a></li>
          <li><a href="https://www.hongkiat.com/blog/web-audio-player/javascript:;" class="jp-pause" tabindex="1">&#61516;</a></li>
          <li><a href="https://www.hongkiat.com/blog/web-audio-player/javascript:;" class="jp-mute" tabindex="1" title="mute">&#61480;</a></li>
          <li><a href="https://www.hongkiat.com/blog/web-audio-player/javascript:;" class="jp-unmute" tabindex="1" title="unmute">&#61478;</a></li>
        </ul>

        <div class="jp-progress">
          <div class="jp-seek-bar">
            <div class="jp-play-bar"></div>
          </div>
        </div>

        <div class="jp-time-holder">
          <div class="jp-current-time"></div>
        </div>

        <div class="jp-volume-bar">
          <div class="jp-volume-bar-value"></div>
        </div>

    <div class="jp-no-solution">
      <span>Update Required</span>
      To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
    </div>
  </div>
</div>

Si observa detenidamente esta estructura HTML, encontrará los siguientes caracteres &#61515;, &#61516;, &#61480; y &#61478;Estos caracteres son números HTML especiales que se utilizan para citar y mostrar caracteres en los íconos de FontAwesome.

Cubrimos este tema en nuestro último artículo: Tutorial de CSS3: Cree un elegante botón de encendido/apagado.

Activar el reproductor de audio

Luego, una vez que se borran las etiquetas HTML, simplemente activamos el reproductor usando el siguiente script. En este script, proporcionamos la fuente de audio como se muestra a continuación, agregue dos fuentes, mp3 y oga. Esta oga El formato ampliará la compatibilidad con varios navegadores, especialmente en Firefox y Opera.


$(document).ready(function(){
  $("#jquery_jplayer_1").jPlayer({
    ready: function () {
      $(this).jPlayer("setMedia", {
        mp3: "audio/TEDxPhoenix-KelliAnderson-DisruptiveWonderforaChange.mp3",
        oga: "audio/TEDxPhoenix-KelliAnderson-DisruptiveWonderforaChange.ogg"
      });
    },
    swfPath: "/js",
    supplied: "mp3,oga"
  });
});

Una vez que agregamos este script, el audio está realmente listo para reproducirse, y si verificamos el etiquetado HTML con Firebug u otras herramientas de desarrollo, podemos encontrar uno nuevo. <audio> También se generan elementos HTML5.

firebug-audio-html5

Diseña el reproductor

En esta sección, comenzaremos a agregar estilos para que el reproductor de audio se vea mejor, comenzaremos definiendo una nueva familia de fuentes y eliminando el subrayado del sujetador, como se muestra a continuación.


@font-face {
    font-family: "FontAwesome";
    src: url("fonts/fontawesome-webfont.eot");
    src: url("fonts/fontawesome-webfont.eot?#iefix") format("eot"), 
    	 url("fonts/fontawesome-webfont.woff") format("woff"), 
    	 url("fonts/fontawesome-webfont.ttf") format("truetype"), 
    	 url("fonts/fontawesome-webfont.svg#FontAwesome") format("svg");
    font-weight: 400;
    font-style: normal;
}
a {
    text-decoration: none;
}
.jp-jplayer,.jp-audio {
    width: 420px;
    margin: 50px auto;
}
título de audio

No cambiaremos mucho el estilo de esta sección, ya que solo contiene el título de texto del audio que se está reproduciendo. Simplemente haremos que el texto del título sea más pequeño y lo colorearemos de gris.


.jp-title {
    font-size: 12px;
    text-align: center;
    color: #999;
}

.jp-title ul {
    padding: 0;
    margin: 0;
    list-style: none;
}
contenedor de GUI

La interfaz gráfica del reproductor de audio está incluida en un div asignado a jp-gui clase. Puede ver cómo se ve nuestro reproductor multimedia en la captura de pantalla anterior. Aplicamos un color degradado al tema de la GUI y usamos este número de color como color inicial. #f34927, y #dd3311 para el color final También asegúrese position esta propiedad div Se define como relative.


.jp-gui {
	position: relative;
	background: #f34927;
	background: -moz-linear-gradient(top,  #f34927 0%, #dd3311 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f34927), color-stop(100%,#dd3311));
	background: -webkit-linear-gradient(top,  #f34927 0%,#dd3311 100%);
	background: -o-linear-gradient(top,  #f34927 0%,#dd3311 100%);
	background: -ms-linear-gradient(top,  #f34927 0%,#dd3311 100%);
	background: linear-gradient(to bottom,  #f34927 0%,#dd3311 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#f34927", endColorstr="#dd3311",GradientType=0 );
	-webkit-box-shadow:  0px 1px 1px 0px rgba(0, 0, 0, .1);    
    box-shadow:  0px 1px 1px 0px rgba(0, 0, 0, .1);
    border-radius: 3px;
	overflow: hidden;
	margin-top: 10px;
}
control de interfaz gráfica de usuario

La sección de controles GUI contiene la interfaz de usuario para el control de volumen, como los botones de reproducción y pausa, volumen y silencio. font-family Propiedad fuente genialy cambie el color del texto a blanco y agregue texto sombra.


.jp-controls {
    padding: 0;
    margin: 0;
    list-style: none;
    font-family: "FontAwesome";
    text-shadow: 1px 1px 0 rgba(0,0,0,0.3);
}

.jp-controls li {
    display: inline;
}

.jp-controls a {
    color: #fff;
}
botones de reproducción y pausa

Los ajustaremos para los botones de reproducción y pausa y volumen. position ellos llegan absolute, por eso preguntamos .jp-gui antiguos parientes. Por lo tanto, las posiciones de estos botones serán relativas a su padre inmediato, no en la ventana del navegador.


.jp-play,.jp-pause {
    width: 60px;
    height: 40px;
    display: inline-block;
    text-align: center;
    line-height: 43px;
    border-right: 1px solid #d22f0f;
}

.jp-controls .jp-play:hover,.jp-controls .jp-pause:hover {
    background-color: #de3918;
}

.jp-mute,.jp-unmute {
    position: absolute;
    right: 55px;
    top: 0;
    width: 20px;
    height: 40px;
    display: inline-block;
    line-height: 46px;
}

.jp-mute {
    text-align: left;
}
.jp-time-holder {
    color: #FFF;
    font-size: 12px;
    line-height: 14px;
    position: absolute;
    right: 90px;
    top: 14px;
    text-shadow: 1px 1px 0 rgba(0,0,0,0.3);
}
barra de progreso y barra de volumen

La barra de progreso se ve similar, solo que con un tamaño diferente. Obviamente, el progreso debe ser más largo y más grande que la barra de volumen.


.jp-progress {
    background-color: #992E18;
    border-radius: 20px 20px 20px 20px;
    overflow: hidden;
    position: absolute;
    right: 133px;
    top: 15px;
    width: 210px;
    -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,0.2) inset;
    box-shadow: 0 1px 1px 0 rgba(0,0,0,0.2) inset;
}

.jp-play-bar {
    height: 12px;
    background-color: #fff;
    border-radius: 20px 20px 20px 20px;
}

.jp-volume-bar {
    position: absolute;
    right: 10px;
    top: 17px;
    width: 45px;
    height: 8px;
    border-radius: 20px 20px 20px 20px;
    -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1) inset;
    box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1) inset;
    background-color: #992E18;
    overflow: hidden;
}

.jp-volume-bar-value {
    background-color: #fff;
    height: 8px;
    border-radius: 20px 20px 20px 20px;
}

Este es todo el código que necesitamos. Ahora puede ver la demostración y descargar el código fuente desde el siguiente enlace.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir