Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: juanam en 23 Diciembre 2016, 11:19 am



Título: [Resuelto] Detener, simular STOP en reproductor web
Publicado por: juanam en 23 Diciembre 2016, 11:19 am
Estimados, he agregado un 2do reproductor de musica a mi web, cuyo iframe de un tercero está activado con AutoPlay.
Como ya tengo otro reproductor con Autoplay, no deseo que se enciendan los 2 al mismo tiempo.

El reproductor que deseo detener (click STOP) cuando se carga la pagina, es el que tiene notas musicales de fondo, barra de volumen anaranjada y el logo de android ( ver enlace en mi firma).

Como les comenté no puedo modificar el código que se carga, porque el iframe se carga desde la url de un tercero.
Si bien, cuando generé el codigo, el valor AutoPlay lo puse en "no" y queda seteado en "false", como verán más abajo, el reproductor se inicia a los 3 segundos, por un código javascript que carga el iframe al final.

¿Que puedo agregarle para que se simule un click del botón STOP, o para detener la musica al cargar la pagina?
Código
  1. $(document).ready(function(){
  2.  
  3. $('#jquery_jplayer_1').jPlayer({
  4.  
  5. ready: function (event) {
  6.  
  7. $(this).jPlayer('setMedia', {
  8.  
  9. mp3:'http://149.202.34.48:9920/;stream/1'
  10.  
  11. });
  12.  
  13. },
  14.  
  15. swfPath: 'http://player.inimusic.com/mashter/player/js',
  16.  
  17. supplied: 'mp3',
  18.  
  19. wmode: 'window',
  20.  
  21. solution: 'html,flash',
  22.  
  23.        volume: 0.75,
  24.  
  25.        autoPlay: false
  26.  
  27. });
  28.  
  29.  
  30.  
  31.    //Guarda Volumen en coquies
  32.  
  33.    $('#custom_jplayer_volume_bar,#custom_jplayer_volume_bar_value').click(function()
  34.  
  35.    {
  36.  
  37.        //Cache the volume value.
  38.  
  39.        var new_volume = $('#jplayer').jPlayer('getData', 'volume');
  40.  
  41.        //Store the volume in a cookie.
  42.  
  43.        $.cookie('jp_volume', new_volume, { expires: 7, path: '/'});
  44.  
  45.        alert(new_volume);
  46.  
  47.    });
  48.  
  49.  
  50. //auto inicia a los 3 segundos
  51.  
  52. var count=3;
  53.  
  54. function timer()
  55.  
  56. {
  57.  
  58.  count=count-1;
  59.  
  60.  if (count <= 0)
  61.  
  62.  {
  63.  
  64.     clearInterval(counter);
  65.  
  66.  
  67.  
  68.    var jp_volume = 0.60;
  69.  
  70. //    alert('play');
  71.  
  72.    $('#jquery_jplayer_1').jPlayer('play');
  73.  
  74.    $('#jquery_jplayer_1').jPlayer({volume:jp_volume});
  75.  
  76.    $('#jquery_jplayer_1').jPlayer('stop');
  77.  
  78.    $('#jquery_jplayer_1').jPlayer('play');
  79.  
  80.     return;
  81.  
  82.  }
  83.  
  84. }
  85.  
  86. var counter=setInterval(timer, 1000);
  87.  
  88.  
  89. });
  90.  
  91.  


Título: Re: Detener, simular STOP en reproductor web
Publicado por: engel lex en 23 Diciembre 2016, 13:03 pm
Esto no es Java, esto es javascript que son cosas muy diferentes y básicamente con nada en común

Movido a su lugar correcto


Título: Re: Detener, simular STOP en reproductor web
Publicado por: juanam en 30 Diciembre 2016, 12:32 pm
No quiero ser insistente porque el tiempo y la ayuda que generosamente brindan es gratuita y cada uno puede ayudar cuando puede o cuando le apetece.

Pero me pregunto: ¿Es tan dificil lograra la simulación de un click de ratón en un botón?

En otro foro me respondieron algo, que quizá sea cierto, pero no me convence.

Me dijeron que como el iframe se carga desde la web de un tercero, por motivos de seguridad no se puede simular el click en el botón del reproductor.

Segunda pregunta: ¿Esto es cierto? o sea ¿Es imposible lograrlo?

Gracias y perdonen por las preguntas de este novato.


Título: Re: Detener, simular STOP en reproductor web
Publicado por: #!drvy en 30 Diciembre 2016, 19:35 pm
Citar
Segunda pregunta: ¿Esto es cierto? o sea ¿Es imposible lograrlo?

Es imposible decirle al navegador que modifique o interactue directamente con un elemento cargado desde una pagina de terceros. Es básicamente por seguridad. Te lo han dicho de forma correcta.

El codigo que incluyes si permite lanzar un evento para parar el reproductor pero no se hasta que punto puedes interactuar con el por lo previamente mencionado.

Código
  1. $('#jquery_jplayer_1').jPlayer('stop');

Eso se puede lanzar desde cualquier evento pero dado que cargas dicho javascript en un iframe de un dominio ajeno, no creo que te lo permita.

De todos modos te aconsejaría cambiar de reproductor. Flash ya no hace gracia a nadie, la mayoría de navegadores los están desactivando por defecto y los dispositivos móviles no lo incorporan.

Saludos



Título: Re: Detener, simular STOP en reproductor web
Publicado por: juanam en 31 Diciembre 2016, 13:00 pm
Gracias por tu ayuda #!drvy.

Tal como me lo advertiste, no funciona.

Los reproductores flash están algo pasados de moda y demoran la carga de la página, el asunto es que uno puro en HTML5, tampoco funciona en algunos dispositivos.
La etiqueta <audio> no es aceptada por todos los navegadores y dispositivos móviles.

De ahi que me atreví a probar este que combina flash con html5 y como el desarrollador comentó que es multiplataforma, pensé que sería buena idea combinarlo con el otro que tengo en la página.

Si conoces algún código de reproductor para radio shoutcast v1, que fuera compatible con la mayoría de sistemas y dispositivos te agradecería, al menos para probar y ver si la mayoría puede oir la radio.

Abrazo