Функциональность
Я могу добавить несколько видео на страницу, и все видео воспроизводятся с помощью проигрывателя JWplayer.
Я хочу отслеживатькакое видео воспроизводится в данный момент и когда оно завершает воспроизведение на странице (за один раз воспроизводится видео).Поэтому я вызываю метод javascript каждую секунду и проверяю, какое видео воспроизводится, и проверяю, завершает ли оно воспроизведение.
My Issue
Но проблема в том, что если воспроизводится 5-секундное видео и оно завершает воспроизведение, jwplayer (). On ('complete ') триггер события 5 раз,
Ниже приведен метод javascript
function saveVideoPosition()
{
var lt;
var ct;
var currID = '';
var lvp = 0;
var playerId = '';
$(".jwplayer").each(function(idx, item) {
var id = $(item).attr("id");
if (jwplayer(id).getState() == "playing") {
if(isIdGenerated == false){
ltt = new Date();
token = ltt.getTime();
isIdGenerated = true;
}
// the theory is only one video can play at a time
playerId = id;
currID = jwplayer(id).getPlaylistItem().mediaid;
lvp = jwplayer(id).getPosition().toFixed();
jwplayer(playerId).on('complete', function(e)
{
callRequest = true;
start = 0;
currentP = '';
});
// get new video start position after seeking
jwplayer(playerId).on('seeked', function(e)
{
currentP = this.getPosition().toFixed();
callRequest = true;
});
}
});
console.log(hasValue(currID)+' - ' + callRequest +' - '+start +' - '+end);
if (hasValue(currID) && lvp > 0 && callRequest == true) {
params = base_params + "&vid=" + currID+ "&s=" + start + "&e=" + end+ "&token=" + token;
url = "save.php?" + params;
request = new XMLHttpRequest();
request.open("GET", url, true);
request.send(null);
}
if(currentP != ''){
start = currentP;
}
end = lvp;
callRequest = false;
isIdGenerated = false;
}
В связи с этим вызов запроса issus ajax 5 раз.