,另一種方法是做一個自殺的功能。
(function (player) {
var checkAndLoad = function(evt) {
if (evt.position > (evt.duration * (85/100))) {
loadXMLDoc();
checkAndLoad=function(evt){};
}
};
player.onTime(function(evt) {checkAndLoad(evt);});
})(jwplayer());
您需要自onTime
通過匿名包裝提供獲取自己的事件偵聽器的副本額外的間接,因此覆蓋checkAndLoad
不會註冊聽衆直接影響。
如果您希望偵聽器運行多次,請註冊額外的偵聽器,以便在相應事件(例如,用戶尋回到接近開始處)時恢復checkAndLoad
。
(function (player) {
var timeListener;
function checkAndLoad(evt) {
if (evt.position > (evt.duration * (85/100))) {
loadXMLDoc();
timeListener=function(evt){};
}
}
timeListener = checkAndLoad;
player.onTime(function(evt) {timeListener(evt);});
player.onSeek(function(evt) {
if (evt.position < (evt.duration * (15/100))) {
timeListener=checkAndLoad;
}
});
player.onComplete(function (evt) {timeListener=checkAndLoad;});
})(jwplayer());
更好的辦法是取消註冊偵聽器,但JW Player API當前不公開removeEventListener方法。
您是否希望偵聽器在每次加載頁面時運行一次,或者每次視頻開始播放時都運行一次? – outis