Controlando o jogador JW FLV com jQuery
-
22-07-2019 - |
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.
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