Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Error armando un reproductor de audio

Estas en el tema de Error armando un reproductor de audio en el foro de Frameworks JS en Foros del Web. Buenas amigos de fdw, estoy con un problema, espero puedan ayudarme. Tengo un reproductor en el index Código HTML: <audio id= "audio" tabindex= "0" controls= ...
  #1 (permalink)  
Antiguo 17/03/2014, 03:27
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Error armando un reproductor de audio

Buenas amigos de fdw, estoy con un problema, espero puedan ayudarme.
Tengo un reproductor en el index

Código HTML:
<audio id="audio"  tabindex="0" controls="" type="audio/mpeg">
        <source type="audio/mp3" src="">
    </audio> 
Con su playlist

Código HTML:
<div id="lista" class="lista">
                <ol id="canciones">
        <li><a href="Kalimba.mp3">Ravel Bolero</a></li>
        <li><a href="http://www.archive.org/download/CanonInD_261/CanoninD.mp3">Canon in D Pachabel</a></li>
        <li><a href="http://www.archive.org/download/PatrikbkarlChamberSymph/PatrikbkarlChamberSymph_vbr_mp3.zip">patrikbkarl chamber symph</a></li>
    </ol>
</div> 
Y le agregaba canciones presionando un botón que estaba en el mismo index

Código:
<script>
$( document ).ready(function() {
$("#addsong").click(function(){
  $("#canciones").append("<li><a href='Kalimba.mp3'>Ravel Bolero</a></li>");
  
});
});
</script>
Reproductor
Código:
<script>
 var audio;
var lista;
var tracks;
var current;

init();
function init(){
    current = 0;
    audio = $('audio');
    lista = $('#lista');
    tracks = lista.find('li a');
    len = tracks.length - 1;
    audio[0].volume = 1;
    audio[0].play();
    lista.on('click','a',function(e){
        e.preventDefault();
        link = $(this);
        current = link.parent().index();
        run(link, audio[0]);
    });
    audio[0].addEventListener('ended',function(e){
        current++;
        if(current == len){
            current = 0;
            link = lista.find('a')[0];
        }else{
            link = lista.find('a')[current];    
        }
        run($(link),audio[0]);
    });
}
function run(link, player){
        player.src = link.attr('href');
        par = link.parent();
        par.addClass('active').siblings().removeClass('active');
        audio[0].load();
        audio[0].play();
}

</script>
El problema ahora lo tengo al querer agregar canciones desde otro archivo. Le doy agregar, se agrega al playlist, pero tengo problemas para reproducirlo, no hace nada directamente, por lo cual no puedo darme cuenta cuál es el error, si es que hay que recargar el script o que ._. si alguno ve algo mal en el código, espero me de una mano. Desde ya, muchas gracias gente!
  #2 (permalink)  
Antiguo 17/03/2014, 14:23
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Error armando un reproductor de audio

Por lo pronto si audio es id le falta # --> $('#audio')

He probado esto. De inicio ejecuta el tema predefinido y, si le agrego el siguiente con el botón, al terminar el que está ejecutando lo reproduce también.
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.         $("#addsong").click(function(e) {
  4.           $("#tracks").append("<li><a href='../audio/knockingOnHeavensDoor-backingTrack.mp3'>Enlace</a></li>");
  5.         });
  6.  
  7.         var audio, par, link, lista, tracks, current;
  8.         init();
  9.        
  10.         function init() {
  11.           current = 0;
  12.           audio = $('#audio');
  13.           lista = $('#lista');
  14.           tracks = lista.find('li a');
  15.           var len = tracks.length - 1;
  16.           run(lista.find('a'), audio[0]);
  17.           lista.find('a').click(function(e) {
  18.             e.preventDefault();
  19.             link = $(this);
  20.             current = link.parent().index();
  21.             run(link, audio[0]);
  22.           });
  23.           audio[0].addEventListener('ended', function(e) {
  24.             current++;
  25.             if (current === len) {
  26.               current = 0;
  27.               link = lista.find('a')[0];
  28.             } else {
  29.               link = lista.find("a")[current];
  30.             }
  31.             run($(link), audio[0]);
  32.           });
  33.  
  34.         }
  35.  
  36.         function run(link, player) {
  37.           player.src = link.attr('href');
  38.           par = link.parent();
  39.           par.addClass('active').siblings().removeClass('active');
  40.           audio[0].load();
  41.           audio[0].play();
  42.         }
  43.  
  44.       });
Código HTML:
Ver original
  1. <div id="playlist">
  2.       <div id="lista" class="lista">
  3.         <ol id="tracks">
  4.           <li><a href="../audio/school.mp3">School</a></li>
  5.         </ol>
  6.       </div>
  7.     </div>
  8.     <div>
  9.       <input type="submit" id="addsong" value="Add" >
  10.     </div>
  11.     <audio id="audio"  tabindex="0" controls="">
  12.       <source type="audio/mp3" src="">
  13.     </audio>

Etiquetas: audio, javascript, reproductor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:11.