2013-05-02 24 views
8

JWPlayer kullanıyorum. kurulumdan sonra oyuncu ben şöyle events.JWPLAYER_MEDIA_TIME dinlemek bir örnek vermek, bazı olaylara dinleyicileri eklemek gerekir: okuma, ben bu olay dinleyicisi kaldırmak gerekir Bir süre sonraJWPlayer örneğinden bir olay işleyicisi nasıl kaldırılır?

jwplayer('video-container').onTime(this.onTimeHandler); 

documentation Ben 'edemezdim herhangi bir çözüm bulmuyorum.

+0

'jwplayer ('video-container') 'ı denediniz onTime (null);' ?? – yogi

+0

Merhaba @yogi, işe yaramıyor. Jwplayer.onTime() 'bir olaya bir işlevi bağlama, bu bağlantıyı kaldırmanın bir yolunu bulamıyorum ... –

cevap

8

Looking at the code, bir olay dinleyicisini kaldırmak mümkün görünmüyor: onTime (veya olay işleyicilerini ayarlamak için diğer yöntemlerden herhangi biri) çağırdığınızda bir diziye geri çağrılır, böylece ikinci kez çağırılmaz. ' t Önceki bir dinleyicinin üzerine yaz ama diziye yeni bir dinleyici ekler. İşte

onTimeHandler : function() { 
    if (! this.handleOnTimeEvents) 
    return; 
    ... 
} 
+0

Teşekkür ederim @robertklep, atm yapıyorum, ama bir dinleyiciyi tamamen kaldırmanın yolu, onTime (ikinci saniyede yaklaşık 10 kez çağrılır) birkaç dinleyici eklediğinizde ve kodun yürütülmesini engelleyecek global bayraklar eklemeye devam ederseniz, hoş görünmez. “It_works! = Is_pretty';” dediği gibi (bir çalışma çözümü vermek için en elverişli olana dek oy verildi) –

0

bunu nasıl ele şudur: dinleyici artık onun görevi gerçekleştirmek zorunda değildir bir kere

Belki alternatif bir bayrak ayarlamak için olabilir. tek amacı bir işaretçi olmak için bir sözlü işlev oluşturmak. Başka bir yük Gerekirse

var mcomplete = (selobj.HasQ == false) ? InterActNoTimeAutoS : jwpCompleteInterA; 
createJWPlayer(selobj.Upath, ti.TestTitle, true, "100%", "100%"); 
jwcompleteevent = mcomplete; 

: Ben onComplete olayla ilgili, bu yüzden bu kadar aşağıda gibi kod yazdım oldu: Ben oluşturulduğu yerde işlevinde Sonra

function createJWPlayer(surl, stitle, autos, pw, ph) { 
    jwplayer("videocontainer").setup({ 
     file: surl, 
     title: stitle, 
     width: pw, 
     height: ph, 
     autostart: autos, 
     stretching: "uniform", 
     skin: "/Scripts/JWPlayer/six.xml" 
    }); 
    jwplayer().onComplete(function (e) { 
      jwcompleteevent(e); 
     }); 
} 

function jwcompleteevent(e) { 
    // method to remain empty, sole purpose is to provide a pointer for the handler 
} 

, ben yazdım Bu konuda bir problem görürse, video, ben bu

mcomplete = (selobj.HasQ == false) ? InterActNoTimeAutoS : jwpCompleteInterA; 
jwcompleteevent = mcomplete; 
loadJwPlayerUrl(selobj.Upath, true); 

yapacağını, söyle lütfen, bu geliştirme ortamında gerektiği gibi çalışıyor görünüyor

İlgili konular