Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi pessoal, estou comum código aqui que basicamente é um player e no código eu preciso chamar uma função que está dentro de outra função. Exemplo do código:
$.extend(MediaElementPlayer.prototype, {
playTrack: function(track) {
var t = this;
t.pause();
t.setSrc(track.attr('data-url'));
t.load();
t.play();
track.addClass('current').siblings().removeClass('current');
$('.player h2').text(track.attr('title'));
},
playTrackURL: function(url) {
var t = this;
var tracks = t.layers.find('.mejs-playlist > ul > li');
var track = tracks.filter('[data-url="'+url+'"]');
t.playTrack(track);
}
});Não tem, é uma biblioteca bem nova. Mas eu resolvi copiando a função e executando ela no escopo que eu queria, esse código acima é parte de um código de um player HTML5 e eu estava implementando uma playlist dinâmica nele. Executar a função playtrack no escopo que eu queria seria:
$('audio')[0].player.pause();
$('audio')[0].player.setSrc($(this).attr('data-url'));
$('audio')[0].player.load();
$('audio')[0].player.play();
$(this).addClass('current').siblings().removeClass('current');
$('.player h2').text($(this).attr('title'));
Obviamente isso é uma solução particular, mas resolveu.Provavelmente.. seria algo como:
var mep = new MediaElementPlayer();
mep.playTrackURL('http://...');Mas ainda acho um pouco esquisito ele fazer um $.extend de um prototype com um objeto literal.. não entendi bem o padrão que essa lib está tentando seguir.
Pega um código pronto e não sabe usar, vai longe assim, viu.
Não tem documentação?