Управление JW FLV плеером с помощью jQuery
-
22-07-2019 - |
Вопрос
Я пытаюсь управлять экземпляром Проигрыватель 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?
Я должен сказать, что на самом деле я хочу сделать это Учиться вместо того, чтобы просто попросить кого-то другого сделать это, так что, если вы сможете немного все объяснить, это было бы еще более потрясающе.
Решение
То, что вы делаете, мне кажется правильным, хотя я не уверен, что переменная " 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);
}
});
Другие советы
player.sendEvent('LOAD', playlist
}
);
Проверьте вложенность в скобках.
В противном случае должно работать. Но 'rel' не очень хорошее место для размещения URL, так как он должен содержать только известные токены . Почему бы не положить его в «href», где вы ожидаете? Вам просто нужно «вернуть false» или «protectDefault», чтобы прекратить переход по ссылке после перехода.
function playerReady(obj)
{
player = gid(obj.id);
};
function gid(name)
{
return document.getElementById(name);
};
Э-э, здесь не лишний гид? Почему бы просто не "player = obj"?
У меня здесь такая же проблема, как и у вас.И я понимаю, что первым делом вы вызываете 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("ВОСПРОИЗВЕДЕНИЕ");..и т.д.Надеюсь, мы сможем поговорить об этом и улучшить jQuery