var instances = []; function secondsToTime(secs) { var minutes = Math.floor(secs / 60); var seconds = Math.floor(secs % 60); if (isNaN(minutes)) minutes = 0; if (isNaN(seconds)) seconds = 0; if (minutes < 0) minutes = 0; if (seconds < 0) seconds = 0; if (seconds < 10) seconds = "0" + seconds; if (minutes < 10) minutes = "0" + minutes; var obj = { "m": minutes, "s": seconds, }; return obj; } $(document).on("change", ".p5VideoPlayer_zakres", function(slideEvt) { //console.log("test"); var player = $(this).closest(".p5VideoPlayer") var start = $(player).data("start") var end = $(player).find('.p5VideoPlayer_vid')[0].duration - $(player).data("end") $(player).find('.p5VideoPlayer_vid')[0].currentTime = slideEvt.value.newValue * ($(player).find('.p5VideoPlayer_vid')[0].duration - start - end) * 0.01 + start }); function videoPlayer_updateProgress(player, id) { if(!jQuery.contains(document, $(player)[0])){ clearInterval(instances[id]["INTERVAL"]) return } var start = $(player).data("start") var end = $(player).data("end") var current = $(player).find('.p5VideoPlayer_vid')[0].currentTime - start; var video = $(player).find(".p5VideoPlayer_vid"); end = $(player).find('.p5VideoPlayer_vid')[0].duration - end var duration = $(player).find('.p5VideoPlayer_vid')[0].duration - start - end; var result = (current / duration) $(player).find(".p5VideoPlayer_zakres").slider('setValue', result * 100) var currentObj = secondsToTime(current); var durationObj = secondsToTime(duration); $(player).find(".p5VideoPlayer_current").text(currentObj.m + ":" + currentObj.s); $(player).find(".p5VideoPlayer_duration").text(durationObj.m + ":" + durationObj.s); if (current < 0) { $(player).find('.p5VideoPlayer_vid')[0].currentTime = start; } if (current >= duration) { $(player).find('.p5VideoPlayer_vid')[0].currentTime = duration + start; var el = $(player).find(".p5VideoPlayer_play"); $(video).trigger('pause'); $(el).removeClass("glyphicon-pause") $(el).addClass("glyphicon-play") } $( player ).trigger( "videoProgress" ); } function p5VideoPlayer_init(imgEl){ if (!$(imgEl).parent().hasClass("p5VideoPlayer")) return false; var player = $(imgEl).parent(); var id = $(player).data("videoid"); var link = BASE_URL + "index.php?_route=UrlAction_ProcesEditor&_task=getVideoFileAjax&id=" + id; $.get(link, function(data) { if($(player).data("start") === true) $(player).data("start", data["VIDEO_START"]); if($(player).data("end") === true) $(player).data("end", data["VIDEO_END"]); $(player).append(`
00:00 / 00:00
`) $(player).find(".img").hide() $(player).find('.p5VideoPlayer_vid')[0].currentTime = $(player).data("start"); $('.p5VideoPlayer_zakres').slider({ formatter: function(value) { return value + "%"; } }); $('.p5VideoPlayer_glosnosc').slider({ formatter: function(value) { return value + "%"; } }); //videoPlayer_updateProgress(player); var temp = {} temp["vid"] = $(player).find('.p5VideoPlayer_vid'); //console.log("instances ", instances.length) instances.push(temp); instances[instances.length-1]["INTERVAL"] = setInterval(function() { videoPlayer_updateProgress(player, instances.length-1); }, 500); }); } $(document).on("click", ".img", function() { p5VideoPlayer_init(this); }); function videoPlayer_play(el) { var player = $(el).closest(".p5VideoPlayer") var video = $(player).find(".p5VideoPlayer_vid"); el = $(player).find(".p5VideoPlayer_play"); if ($(video).prop("paused")) { $.each(instances, function(i,e){ if(!$(e["vid"]).prop("paused")){ videoPlayer_play(e["vid"]); } }) $(video).trigger('play'); $(el).removeClass("glyphicon-play") $(el).addClass("glyphicon-pause") } else { $(video).trigger('pause'); $(el).removeClass("glyphicon-pause") $(el).addClass("glyphicon-play") } //videoPlayer_updateProgress(player); } $('.p5VideoPlayer_vid').on('canplay canplaythrough', function() { alert('canplay event fired'); }); $(document).on("click", ".p5VideoPlayer_play", function() { videoPlayer_play(this); }) $(document).on("click", ".p5VideoPlayer_vid", function() { videoPlayer_play(this); }) $(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', ".p5VideoPlayer_vid", function() { var state = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen; var player = $(this).closest(".p5VideoPlayer") var video = $(player).find(".p5VideoPlayer_vid"); if (state) { $(player).find(".p5VideoPlayer_video-controls").addClass("p5VideoPlayer_video-controls-fs"); } else { $(player).find(".p5VideoPlayer_video-controls").removeClass("p5VideoPlayer_video-controls-fs"); } }); $(document).on("click", ".p5VideoPlayer_fullscreen", function() { var player = $(this).closest(".p5VideoPlayer") var video = $(player).find(".p5VideoPlayer_vid"); var elem = video[0]; $(player).find(".p5VideoPlayer_video-controls").addClass("p5VideoPlayer_video-controls-fs"); var state = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen; if (!state) { if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.mozRequestFullScreen) { elem.mozRequestFullScreen(); } else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen(); } } else { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } } });