Pregunta

Estoy tratando de controlar una instancia del JW FLV player jugador usando jquery.

Lo que quiero hacer es tener una serie de enlaces que al hacer clic cargan una lista de reproducción XML en el reproductor.

Siguiendo el tutorial aquí He conseguido que las cosas funcionen básicamente como las quiero en términos de funcionalidad, pero incluso puedo ver que es feo como pecado, ya que en este momento mis anclas se ven así:

<a class="media" href="#"
onclick="player.sendEvent('STOP');
player.sendEvent('LOAD',
'path/to/playlist.xml');
return false;">load playlist</a>

mientras esto hace referencia al jugador

var player = null;
function playerReady(obj)
{
  player = gid(obj.id);
};

function gid(name)
{
  return document.getElementById(name);
};

Lo que me gustaría poder hacer es que mis anclas se vean así:

<a class="media" href="#" rel="path/to/playlist.xml">load playlist</a>

Y luego use jquery para encontrar los anclajes con class = " media " ;, lea el valor del atributo rel del elemento y luego vincule un evento click que active una función apropiada. Por desgracia, esto está más allá de mis poderes extremadamente escasos.

Hasta ahora tengo:

$('a.media').click(function()
  {
    playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist
  }
);

Que claramente no funciona. ¿Alguien quiere ayudar a un idiota / n00b?

Debo decir que realmente lo que quiero hacer es aprender en lugar de solo pedirle a alguien más que lo haga, así que si puedes explicar un poco las cosas, sería increíble.

¿Fue útil?

Solución

Lo que estás haciendo me parece correcto, aunque no estoy seguro de que la variable "jugador" se define allí; depende del contexto.

Lo que puedes hacer es algo como

$('a.media').click(function () {
  var player = $("#player-id");
  if(player.length == 1){
    player = player[0];
    var playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist);
  }
});

Otros consejos

player.sendEvent('LOAD', playlist
}
);

Verifique el anidamiento de su soporte.

De lo contrario, debería funcionar. Pero & # 8216; rel & # 8217; no es un muy buen lugar para poner una URL, ya que solo se supone que contiene tokens conocidos . ¿Por qué no ponerlo en & # 8216; href & # 8217; donde esperarías Solo tiene que & # 8216; devolver falso & # 8217; o & # 8216; preventDefault & # 8217; para detener el enlace que se sigue después de un lamido.

function playerReady(obj)
{
    player = gid(obj.id);
};
function gid(name)
{
    return document.getElementById(name);
};

Er, ¿no es gid completamente superfluo aquí? ¿Por qué no solo & # 8216; player = obj & # 8217 ;?

Tengo el mismo problema que tú aquí. Y me doy cuenta de que el primero que llamas crear jugador usando

var newplayer = SWFobject(width,height,playerid,version,background-color);
newplayer.addVarible(...);
newplayer.write(htmltaghold place for this player);

No recuerdo correctamente pero es como el código anterior, después de eso puedes usar var player = window.document [thePlayer.id] en la función playerReady (thePlayer) {} en jQuery me gusta

jQuery("div#id").click(function(){
   your code
   player.sendEvent("NEXT");
});

player.sendEvent (" PLAY "); ..etc. Espero que podamos hablar de eso y mejorar jQuery

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top