Pergunta

Eu estou tentando controlar uma instância do jogador JW FLV leitor usando jquery.

O que eu quero fazer é ter uma série de links que, quando clicado carregar uma lista de reprodução XML para o jogador.

Ao seguir o tutorial aqui Eu comecei coisas que trabalham basicamente como eu quero que eles em termos de funcionalidade, mas mesmo eu posso ver que é feio como o pecado, como no momento em que minhas âncoras esta aparência:

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

enquanto isso fica um ref para o jogador

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

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

O que eu gostaria de ser capaz de fazer é ter minhas âncoras esta aparência:

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

E, em seguida, usar jQuery para encontrar as âncoras com class = "media", leia o valor do atributo rel do elemento e, em seguida, vincular um evento de clique a ele o que desencadeia uma função apropriada. Infelizmente isso está além de meus poderes extremamente escassos.

Até agora eu tenho:

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

Que claramente não funciona. Qualquer um cuidado para ajudar um idiota / n00b?

Devo dizer que realmente o que eu quero fazer é aprender em vez de apenas obter alguma outra pessoa para fazê-lo, por isso, se você pode explicar um pouco as coisas que seria extra incrível.

Foi útil?

Solução

O que você está fazendo parece correto para mim, embora eu não tenho certeza variável "player" é definido lá; isso depende do contexto.

O que você pode fazer é 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);
  }
});

Outras dicas

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

Verifique se o seu assentamento suporte.

Caso contrário, deve funcionar. Mas 'rel' não é um lugar muito bom para colocar um URL, uma vez que só é suposto para conter símbolos conhecidos . Por que não colocá-lo em ‘href’ onde você esperaria? Você apenas tem que ‘false retorno’ ou ‘preventDefault’ para parar o link a ser seguido após uma lambida.

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

Er, não gid completamente supérfluo aqui? Por que não apenas ‘jogador = obj’?

Eu estou obter o mesmo problema como você aqui. E eu percebo que o primeiro você chama criar jogador usando

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

Eu não lembro, mas é como o código acima, depois que você pode usar var jogador = window.document [thePlayer.id] na função playerReady (theplayer) {} em jQuery como

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

player.sendEvent ( "PLAY"); .etc. Espero que possamos falar sobre isso e melhorar jQuery

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top