Управление плеером JW FLV с помощью jQuery - PullRequest
2 голосов
/ 13 марта 2009

Я пытаюсь управлять экземпляром проигрывателя JW FLV , используя jquery.

То, что я хочу сделать, это иметь серию ссылок, которые при нажатии загружают список воспроизведения XML в проигрыватель.

Следуя уроку здесь У меня все работает в принципе так, как я хочу, с точки зрения функциональности, но даже я могу видеть, что это безобразно, как грех, так как на данный момент мои якоря выглядят так :

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

в то время как это получает ссылку для игрока

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

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

Я бы хотел, чтобы мои якоря выглядели так:

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

А затем с помощью jquery найдите якоря с class = "media", прочитайте значение атрибута rel элемента, а затем привяжите к нему событие click, которое вызывает соответствующую функцию. Увы, это за пределами моих чрезвычайно скудных способностей.

Пока у меня есть:

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

Что явно не работает. Кто-нибудь хочет помочь идиоту / n00b?

Я должен сказать, что на самом деле я хочу учиться , а не просто заставлять кого-то другого делать это, так что, если вы можете объяснить что-то немного более удивительное.

Ответы [ 3 ]

4 голосов
/ 13 марта 2009

То, что вы делаете, мне кажется правильным, хотя я не уверен, что там определена переменная "player"; это зависит от контекста.

То, что вы можете сделать, это что-то вроде

$('a.media').click(function () {
  var player = $("#player-id");
  if(player.length == 1){
    player = player[0];
    var playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist);
  }
});
0 голосов
/ 15 июля 2010

У меня та же проблема, что и у вас здесь. И я понимаю, что сначала вы вызываете create player используя

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

Я не помню правильно, но похоже на приведенный выше код, после этого вы можете использовать var player = window.document [thePlayer.id] в функции playerReady (thePlayer) {} в jQuery как

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

player.sendEvent ( "PLAY"); ..так далее. Надеюсь, мы сможем поговорить об этом и улучшить jQuery

0 голосов
/ 13 марта 2009
player.sendEvent('LOAD', playlist
}
);

Проверьте правильность размещения кронштейнов.

В противном случае должно работать. Но «rel» - не очень хорошее место для размещения URL, поскольку он должен содержать только известных токенов . Почему бы не положить его в «href», где вы ожидаете? Вам просто нужно «вернуть false» или «protectDefault», чтобы прекратить переход по ссылке после lick.

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

Э-э, здесь не лишний гид? Почему бы просто не "player = obj"?

...