Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] ¿Como se puede parar un reproductor al pinchar en otro?

Estas en el tema de ¿Como se puede parar un reproductor al pinchar en otro? en el foro de Javascript en Foros del Web. Hola amigos.. tengo una dudilla.. Tengo un código php que muestra una lista de canciones con datos de la bd.. mi problema es que es ...
  #1 (permalink)  
Antiguo 08/07/2015, 13:43
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
¿Como se puede parar un reproductor al pinchar en otro?

Hola amigos.. tengo una dudilla.. Tengo un código php que muestra una lista de canciones con datos de la bd.. mi problema es que es un bucle que me muestra varias canciones y si le vas dando play a todo.. todo va sonando.. ¿Sabéis como puedo hacer para que se pare el reproductor anterior al pinchar en otro play?

Os adjunto el código actual:

Código PHP:
<?php 
  $numcolumnas 
3;
  
//echo $array["id"];
  
$consulta mysql_query("SELECT * FROM locutores as loc LEFT JOIN asignaciones as asi ON loc.id = asi.id_locucion WHERE asi.id_usuario = '".$array["id"]."' AND loc.genero='Masculino'");
  
$total_resultados mysql_num_rows($consulta);
   if (
$total_resultados>0) {
     echo 
"<div>Hay $total_resultados elementos</div>";
     
$i 1;
     while(
$fila mysql_fetch_array($consulta)){
       
$resto = ($i $numcolumnas); 
       if(
$resto == 1){ /*si es el primer elemento creamos una nueva fila*/ 
         
echo "<div class='row'>";
     }
     echo 
"<div class='col-lg-4'>
     <div class='item-casting'>
     <div class='small-track-container'>
     <div class='div-track-actions'>
     <div class='row row-no-padding'>
     <div class='col-sm-4 col-xs-4 nopadding'>

                                            <div class='circle-track'>"
;

                                                echo 
"<img onclick=\"mostrar(this,'reproductor".$fila['id']."'); return false\" class='img-track' alt='img-listen' src='http://...../wp-content/themes/track15/images/listen-track.png'>

                                            </div>

                                        </div>

                                        <div class='col-sm-8 col-xs-8 nopadding'>

                                            <div class='div-track-data'>

                                                <p class='track-title'>Locutor: "
.$fila['codigo']."</p>

                                                <p class='track-client'>Idiomas: "
.$fila['idioma']."</p>

                                                <p class='track-category'>Género: "
.$fila['genero']."</p>

                                                <div class='text-right track-download-container'>

                                                    <a href='http://...../clientes/"
.$fila['urlaudio']."' title='Descargar track'><img class='track-download' alt='img-download' src='http://...../wp-content/themes/track15/images/download-track.png'></a>

                                                </div>

                                            </div>

                                        </div>
     </div>
     <audio id='reproductor"
.$fila['id']."' controls style='display:none'>
<source src='http://..../clientes/"
.$fila['urlaudio']."' type='audio/mp3' />
</audio>
     </div>
     </div>
     </div>
     </div>"
;
     
/*mostramos el valor del campo especificado*/ 
    
if($resto == 0){
      
/*cerramos la fila*/ 
      
echo "</div>"
    }
   
$i++; 
 }

 if(
$resto != 0){
  
/*Si en la última fila sobran columnas, creamos celdas vacías*/
   
for ($j 0$j < ($numcolumnas $resto); $j++){
     
//echo "<td></td>"; 
    
}
   echo 
"</div>";
  } 
}else{ 
  echo 
"<div>0 elementos encontrados</div> ";
 } 
?>
  #2 (permalink)  
Antiguo 09/07/2015, 15:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Como se puede parar un reproductor al pinchar en otro?

Eso no lo puedes hacer en PHP, porque se ejecuta en el servidor y el reproductor en el navegador; seguramente lo lograrás con Javascript; muevo tu tema al foro adecuado.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 10/07/2015, 06:56
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: ¿Como se puede parar un reproductor al pinchar en otro?

Gracias Triby!

Alguien en este foro que sepa como puedo hacerlo?
  #4 (permalink)  
Antiguo 10/07/2015, 09:36
 
Fecha de Ingreso: diciembre-2011
Mensajes: 98
Antigüedad: 12 años, 4 meses
Puntos: 29
Respuesta: ¿Como se puede parar un reproductor al pinchar en otro?

Si, lo que puedes hacer es que cuando se pulse play en alguno, parar todos los demás <audios> que estén en la página, aquí tienes el código:

Código Javascript:
Ver original
  1. function paraTodosExcepto(ele){
  2. var audios = document.getElementsByTagName("audio");
  3. for(var i = 0; i < audios.length; i++){
  4.    if(audios[i]!=ele){
  5.       audios[i].pause();
  6.    }
  7. }
  8. }

Y luego en cada reproductor de <audio> tienes que añadir el "listener" onplay con una llamada a la función paraTodosExcepto así:

Código HTML:
Ver original
  1. <audio ... onplay="paraTodosExcepto(this)">
  2. ...
  #5 (permalink)  
Antiguo 13/07/2015, 02:57
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: ¿Como se puede parar un reproductor al pinchar en otro?

Funciona perfecto! Muchíiisimas gracias!

Etiquetas: mysql, parar, php, reproductor, select
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 10:36.