| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879 |
- /********************************************
- * REVOLUTION 5.0 EXTENSION - VIDEO FUNCTIONS
- * @version: 1.1.0 (01.10.2015)
- * @requires jquery.themepunch.revolution.js
- * @author ThemePunch
- *********************************************/
- (function($) {
- var _R = jQuery.fn.revolution,
- _ISM = _R.is_mobile();
- ///////////////////////////////////////////
- // EXTENDED FUNCTIONS AVAILABLE GLOBAL //
- ///////////////////////////////////////////
- jQuery.extend(true,_R, {
- resetVideo : function(_nc,opt) {
- switch (_nc.data('videotype')) {
- case "youtube":
- var player=_nc.data('player');
- try{
- if (_nc.data('forcerewind')=="on" && !_ISM) {
- var s = getStartSec(_nc.data('videostartat'));
- s= s==-1 ? 0 : s;
-
- _nc.data('player').seekTo(s);
-
- _nc.data('player').pauseVideo();
- }
-
- } catch(e) {}
- if (_nc.find('.tp-videoposter').length==0)
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
- break;
- case "vimeo":
- var f = $f(_nc.find('iframe').attr("id"));
- try{
- if (_nc.data('forcerewind')=="on" && !_ISM) {
- var s = getStartSec(_nc.data('videostartat')),
- ct = 0;
- s= s==-1 ? 0 : s;
- f.api("seekTo",s);
- f.api("pause");
- }
-
- } catch(e) {}
- if (_nc.find('.tp-videoposter').length==0)
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
- break;
- case "html5":
- if (_ISM && _nc.data('disablevideoonmobile')==1) return false;
-
- var jvideo = _nc.find('video'),
- video = jvideo[0];
-
- punchgs.TweenLite.to(jvideo,0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
-
- if (_nc.data('forcerewind')=="on" && !_nc.hasClass("videoisplaying")) {
- try{
- var s = getStartSec(_nc.data('videostartat'));
- video.currentTime = s == -1 ? 0 : s;
- } catch(e) {}
- }
- if (_nc.data('volume')=="mute")
- video.muted = true;
- break;
- }
- },
- stopVideo : function(_nc,opt) {
-
- switch (_nc.data('videotype')) {
- case "youtube":
- try{
- var player=_nc.data('player');
- player.pauseVideo();
- } catch(e) {}
- break;
- case "vimeo":
- try{
- var f = $f(_nc.find('iframe').attr("id"));
- f.api("pause");
-
- } catch(e) {}
- break;
- case "html5":
- var jvideo = _nc.find('video'),
- video = jvideo[0];
- video.pause();
- break;
- }
- },
- playVideo : function(_nc,opt) {
- clearTimeout(_nc.data('videoplaywait'));
- switch (_nc.data('videotype')) {
- case "youtube":
- if (_nc.find('iframe').length==0) {
- _nc.append(_nc.data('videomarkup'));
- addVideoListener(_nc,opt,true);
- } else {
- if (_nc.data('player').playVideo !=undefined) {
- _nc.data('player').playVideo();
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) _nc.data('player').seekTo(s);
- } else {
- _nc.data('videoplaywait',setTimeout(function() {
- _R.playVideo(_nc,opt);
- },50));
- }
- }
- break;
- case "vimeo":
-
- if (_nc.find('iframe').length==0) {
- _nc.append(_nc.data('videomarkup'));
- addVideoListener(_nc,opt,true);
-
- } else {
- if (_nc.hasClass("rs-apiready")) {
- var id = _nc.find('iframe').attr("id"),
- f = $f(id);
- if (f.api("play")==undefined) {
- _nc.data('videoplaywait',setTimeout(function() {
-
- _R.playVideo(_nc,opt);
- },50));
- } else {
- setTimeout(function() {
-
- f.api("play");
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) f.api("seekTo",s);
- },510);
- }
- } else {
- _nc.data('videoplaywait',setTimeout(function() {
-
- _R.playVideo(_nc,opt);
- },50));
- }
- }
- break;
- case "html5":
- if (_ISM && _nc.data('disablevideoonmobile')==1) return false;
- var jvideo = _nc.find('video'),
- video = jvideo[0],
- html5vid = jvideo.parent();
- if (html5vid.data('metaloaded') != 1) {
- addEvent(video,'loadedmetadata',function(_nc) {
- _R.resetVideo(_nc,opt);
- video.play();
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) video.currentTime = s;
- }(_nc));
- } else {
- video.play();
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) video.currentTime = s;
- }
- break;
- }
- },
- isVideoPlaying : function(_nc,opt) {
- var ret = false;
- if (opt.playingvideos != undefined) {
- jQuery.each(opt.playingvideos,function(i,nc) {
- if (_nc.attr('id') == nc.attr('id'))
- ret = true;
- });
- }
- return ret;
- },
- prepareCoveredVideo : function(asprat,opt,nextcaption) {
- var ifr = nextcaption.find('iframe, video'),
- wa = asprat.split(':')[0],
- ha = asprat.split(':')[1],
- li = nextcaption.closest('.tp-revslider-slidesli'),
- od = li.width()/li.height(),
- vd = wa/ha,
- nvh = (od/vd)*100,
- nvw = (vd/od)*100;
- if (od>vd)
- punchgs.TweenLite.to(ifr,0.001,{height:nvh+"%", width:"100%", top:-(nvh-100)/2+"%",left:"0px",position:"absolute"});
- else
- punchgs.TweenLite.to(ifr,0.001,{width:nvw+"%", height:"100%", left:-(nvw-100)/2+"%",top:"0px",position:"absolute"});
-
- },
- checkVideoApis : function(_nc,opt,addedApis) {
- var httpprefix = location.protocol === 'https:' ? "https" : "http";
-
- if ((_nc.data('ytid')!=undefined || _nc.find('iframe').length>0 && _nc.find('iframe').attr('src').toLowerCase().indexOf('youtube')>0)) opt.youtubeapineeded = true;
- if ((_nc.data('ytid')!=undefined || _nc.find('iframe').length>0 && _nc.find('iframe').attr('src').toLowerCase().indexOf('youtube')>0) && addedApis.addedyt==0) {
- opt.youtubestarttime = jQuery.now();
- addedApis.addedyt=1;
- var s = document.createElement("script");
- s.src = "https://www.youtube.com/iframe_api"; /* Load Player API*/
- var before = document.getElementsByTagName("script")[0],
- loadit = true;
- jQuery('head').find('*').each(function(){
- if (jQuery(this).attr('src') == "https://www.youtube.com/iframe_api")
- loadit = false;
- });
- if (loadit) before.parentNode.insertBefore(s, before);
- }
- if ((_nc.data('vimeoid')!=undefined || _nc.find('iframe').length>0 && _nc.find('iframe').attr('src').toLowerCase().indexOf('vimeo')>0)) opt.vimeoapineeded = true;
- if ((_nc.data('vimeoid')!=undefined || _nc.find('iframe').length>0 && _nc.find('iframe').attr('src').toLowerCase().indexOf('vimeo')>0) && addedApis.addedvim==0) {
- opt.vimeostarttime = jQuery.now();
- addedApis.addedvim=1;
- var f = document.createElement("script"),
- before = document.getElementsByTagName("script")[0],
- loadit = true;
- f.src = httpprefix+"://f.vimeocdn.com/js/froogaloop2.min.js"; /* Load Player API*/
- jQuery('head').find('*').each(function(){
- if (jQuery(this).attr('src') == httpprefix+"://a.vimeocdn.com/js/froogaloop2.min.js")
- loadit = false;
- });
- if (loadit)
- before.parentNode.insertBefore(f, before);
- }
- return addedApis;
- },
- manageVideoLayer : function(_nc,opt,recalled,internrecalled) {
- // YOUTUBE AND VIMEO LISTENRES INITIALISATION
- var vida = _nc.data("videoattributes"),
- vidytid = _nc.data('ytid'),
- vimeoid = _nc.data('vimeoid'),
- videopreload = _nc.data('videpreload'),
- videomp = _nc.data('videomp4'),
- videowebm = _nc.data('videowebm'),
- videoogv = _nc.data('videoogv'),
- videoafs = _nc.data('allowfullscreenvideo'),
- videocontrols = _nc.data('videocontrols'),
- httpprefix = "http",
- videoloop = _nc.data('videoloop')=="loop" ? "loop" : _nc.data('videoloop')=="loopandnoslidestop" ? "loop" : "",
- videotype = (videomp!=undefined || videowebm!=undefined) ? "html5" :
- (vidytid!=undefined && String(vidytid).length>1) ? "youtube" :
- (vimeoid!=undefined && String(vimeoid).length>1) ? "vimeo" : "none",
- newvideotype = (videotype=="html5" && _nc.find('video').length==0) ? "html5" :
- (videotype=="youtube" && _nc.find('iframe').length==0) ? "youtube" :
- (videotype=="vimeo" && _nc.find('iframe').length==0) ? "vimeo" : "none";
-
- _nc.data('videotype',videotype);
- // ADD HTML5 VIDEO IF NEEDED
- switch (newvideotype) {
- case "html5":
- if (videocontrols!="controls") videocontrols="";
- var apptxt = '<video style="object-fit:cover;background-size:cover;visible:hidden;width:100%; height:100%" class="" '+videoloop+' preload="'+videopreload+'">';
- //if (_nc.data('videoposter')!=undefined) apptxt = apptxt + 'poster="'+_nc.data('videoposter')+'">';
- if (videowebm!=undefined && _R.get_browser().toLowerCase()=="firefox") apptxt = apptxt + '<source src="'+videowebm+'" type="video/webm" />';
- if (videomp!=undefined) apptxt = apptxt + '<source src="'+videomp+'" type="video/mp4" />';
- if (videoogv!=undefined) apptxt = apptxt + '<source src="'+videoogv+'" type="video/ogg" />';
- apptxt = apptxt + '</video>';
- var hfm ="";
- if (videoafs==="true" || videoafs===true)
- hfm = '<div class="tp-video-button-wrap"><button type="button" class="tp-video-button tp-vid-full-screen">Full-Screen</button></div>';
- if (videocontrols=="controls")
- apptxt = apptxt + ('<div class="tp-video-controls">'+
- '<div class="tp-video-button-wrap"><button type="button" class="tp-video-button tp-vid-play-pause">Play</button></div>'+
- '<div class="tp-video-seek-bar-wrap"><input type="range" class="tp-seek-bar" value="0"></div>'+
- '<div class="tp-video-button-wrap"><button type="button" class="tp-video-button tp-vid-mute">Mute</button></div>'+
- '<div class="tp-video-vol-bar-wrap"><input type="range" class="tp-volume-bar" min="0" max="1" step="0.1" value="1"></div>'+
- hfm+
- '</div>');
-
- _nc.data('videomarkup',apptxt)
- _nc.append(apptxt);
- // START OF HTML5 VIDEOS
- if ((_ISM && _nc.data('disablevideoonmobile')==1) ||_R.isIE(8)) _nc.find('video').remove();
- // ADD HTML5 VIDEO CONTAINER
- _nc.find('video').each(function(i) {
- var video = this,
- jvideo = jQuery(this);
- if (!jvideo.parent().hasClass("html5vid"))
- jvideo.wrap('<div class="html5vid" style="position:relative;top:0px;left:0px;width:100%;height:100%; overflow:hidden;"></div>');
- var html5vid = jvideo.parent();
- if (html5vid.data('metaloaded') != 1) {
- addEvent(video,'loadedmetadata',function(_nc) {
- htmlvideoevents(_nc,opt);
- _R.resetVideo(_nc,opt);
- }(_nc));
- }
- });
- break;
- case "youtube":
- httpprefix = "http";
- if (location.protocol === 'https:')
- httpprefix = "https";
- if (videocontrols=="none") {
- vida = vida.replace("controls=1","controls=0");
- if (vida.toLowerCase().indexOf('controls')==-1)
- vida = vida+"&controls=0";
- }
-
- var s = getStartSec(_nc.data('videostartat')),
- e = getStartSec(_nc.data('videoendat'));
-
- if (s!=-1) vida=vida+"&start="+s;
- if (e!=-1) vida=vida+"&end="+e;
- // CHECK VIDEO ORIGIN, AND EXTEND WITH WWW IN CASE IT IS MISSING !
- var orig = vida.split('origin='+httpprefix+'://'),
- vida_new = "";
-
- if (orig.length>1) {
- vida_new = orig[0]+'origin='+httpprefix+'://';
- if (self.location.href.match(/www/gi) && !orig[1].match(/www/gi))
- vida_new=vida_new+"www."
- vida_new=vida_new+orig[1];
- } else {
- vida_new = vida;
- }
-
- var yafv = videoafs==="true" || videoafs===true ? "allowfullscreen" : "";
- _nc.data('videomarkup','<iframe style="visible:hidden" src="'+httpprefix+'://www.youtube.com/embed/'+vidytid+'?'+vida_new+'" '+yafv+' width="100%" height="100%" style="width:100%;height:100%"></iframe>');
- break;
- case "vimeo":
- if (location.protocol === 'https:')
- httpprefix = "https";
- _nc.data('videomarkup','<iframe style="visible:hidden" src="'+httpprefix+'://player.vimeo.com/video/'+vimeoid+'?'+vida+'" width="100%" height="100%" style="100%;height:100%"></iframe>');
- break;
- }
-
- //if (videotype=="vimeo" || videotype=="youtube") {
- // IF VIDEOPOSTER EXISTING
- var posteronlyonmobile = (_ISM!=true && (_nc.data('posterOnMobile')!="on" && _nc.data('posteronmobile')!="on")) || _ISM;
-
- if (_nc.data('videoposter')!=undefined && _nc.data('videoposter').length>2 && posteronlyonmobile) {
- if (_nc.find('.tp-videoposter').length==0)
- _nc.append('<div class="tp-videoposter noSwipe" style="cursor:pointer; position:absolute;top:0px;left:0px;width:100%;height:100%;z-index:3;background-image:url('+_nc.data('videoposter')+'); background-size:cover;background-position:center center;"></div>');
- if (_nc.find('iframe').length==0)
- _nc.find('.tp-videoposter').click(function() {
-
- _R.playVideo(_nc,opt);
-
- if (_ISM) {
- if (_nc.data('disablevideoonmobile')==1) return false;
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:0,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
- }
- })
- } else {
- if (_nc.find('iframe').length==0 && (videotype=="youtube" || videotype=="vimeo")) {
-
- _nc.append(_nc.data('videomarkup'));
- addVideoListener(_nc,opt,false);
- }
- }
-
- // ADD DOTTED OVERLAY IF NEEDED
- if (_nc.data('dottedoverlay')!="none" && _nc.data('dottedoverlay')!=undefined && _nc.find('.tp-dottedoverlay').length!=1)
- _nc.append('<div class="tp-dottedoverlay '+_nc.data('dottedoverlay')+'"></div>');
-
- _nc.addClass("HasListener");
- if (_nc.data('bgvideo')==1) {
- punchgs.TweenLite.set(_nc.find('video, iframe'),{autoAlpha:0});
- }
- }
-
- });
- //////////////////////////////////////////////////////
- // * Revolution Slider - VIDEO / API FUNCTIONS //
- // * @version: 1.0 (30.10.2014) //
- // * @author ThemePunch //
- //////////////////////////////////////////////////////
- function getStartSec(st) {
- return st == undefined ? -1 :jQuery.isNumeric(st) ? st : st.split(":").length>1 ? parseInt(st.split(":")[0],0)*60 + parseInt(st.split(":")[1],0) : st;
- };
- // - VIMEO ADD EVENT /////
- var addEvent = function(element, eventName, callback) {
- if (element.addEventListener)
- element.addEventListener(eventName, callback, false);
- else
- element.attachEvent(eventName, callback, false);
- };
- var getVideoDatas = function(p,t,d) {
- var a = {};
- a.video = p;
- a.videotype = t;
- a.settings = d;
- return a;
- }
- var addVideoListener = function(_nc,opt,startnow) {
-
- var ifr = _nc.find('iframe'),
- frameID = "iframe"+Math.round(Math.random()*100000+1),
- loop = _nc.data('videoloop'),
- pforv = loop != "loopandnoslidestop";
- loop = loop =="loop" || loop =="loopandnoslidestop";
- // CARE ABOUT ASPECT RATIO
- if (_nc.data('forcecover')==1) {
- _nc.removeClass("fullscreenvideo").addClass("coverscreenvideo");
- var asprat = _nc.data('aspectratio');
- if (asprat!=undefined && asprat.split(":").length>1)
- _R.prepareCoveredVideo(asprat,opt,_nc);
- }
- // IF LISTENER DOES NOT EXIST YET
- ifr.attr('id',frameID);
- if (startnow) _nc.data('startvideonow',true);
- if (_nc.data('videolistenerexist')!==1) {
- switch (_nc.data('videotype')) {
- // YOUTUBE LISTENER
- case "youtube":
- var player = new YT.Player(frameID, {
- events: {
- "onStateChange": function(event) {
- var embedCode = event.target.getVideoEmbedCode(),
- ytcont = jQuery('#'+embedCode.split('id="')[1].split('"')[0]),
- container = ytcont.closest('.tp-simpleresponsive'),
- _nc = ytcont.parent(),
- player = ytcont.parent().data('player');
- if (event.data == YT.PlayerState.PLAYING) {
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:0,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
- if (_nc.data('volume')=="mute") {
- player.mute();
- } else {
- player.unMute();
- player.setVolume(parseInt(_nc.data('volume'),0) || 75);
- }
- opt.videoplaying=true;
- addVidtoList(_nc,opt);
- container.trigger('stoptimer');
- opt.c.trigger('revolution.slide.onvideoplay',getVideoDatas(player,"youtube",_nc.data()));
- } else {
- if (event.data==0 && loop) {
- //player.playVideo();
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) player.seekTo(s);
- player.playVideo();
- }
- if ((event.data==0 || event.data==2) && _nc.data('showcoveronpause')=="on" && _nc.find('.tp-videoposter').length>0) {
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:1,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:0,ease:punchgs.Power3.easeInOut});
- }
- if ((event.data!=-1 && event.data!=3)) {
- opt.videoplaying=false;
- remVidfromList(_nc,opt);
- container.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(player,"youtube",_nc.data()));
- }
- if (event.data==0 && _nc.data('nextslideatend')==true) {
- opt.c.revnext();
- remVidfromList(_nc,opt);
- } else {
- remVidfromList(_nc,opt);
- opt.videoplaying=false;
- container.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(player,"youtube",_nc.data()));
- }
- }
- },
- 'onReady': function(event) {
- var embedCode = event.target.getVideoEmbedCode(),
- ytcont = jQuery('#'+embedCode.split('id="')[1].split('"')[0]),
- _nc = ytcont.parent(),
- videorate = _nc.data('videorate'),
- videostart = _nc.data('videostart');
- _nc.addClass("rs-apiready");
- if (videorate!=undefined)
- event.target.setPlaybackRate(parseFloat(videorate));
-
- // PLAY VIDEO IF THUMBNAIL HAS BEEN CLICKED
- _nc.find('.tp-videoposter').unbind("click");
- _nc.find('.tp-videoposter').click(function() {
- if (!_ISM) {
- player.playVideo();
- }
- })
- if (_nc.data('startvideonow')) {
-
- _nc.data('player').playVideo();
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) _nc.data('player').seekTo(s);
- //_nc.find('.tp-videoposter').click();
- }
- _nc.data('videolistenerexist',1);
- }
- }
- });
- _nc.data('player',player);
- break;
- // VIMEO LISTENER
- case "vimeo":
- var isrc = ifr.attr('src'),
- queryParameters = {}, queryString = isrc,
- re = /([^&=]+)=([^&]*)/g, m;
- // Creates a map with the query string parameters
- while (m = re.exec(queryString)) {
- queryParameters[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
- }
- if (queryParameters['player_id']!=undefined)
- isrc = isrc.replace(queryParameters['player_id'],frameID);
- else
- isrc=isrc+"&player_id="+frameID;
- try{ isrc = isrc.replace('api=0','api=1'); } catch(e) {}
- isrc=isrc+"&api=1";
- ifr.attr('src',isrc);
-
-
- var player = _nc.find('iframe')[0],
- vimcont = jQuery('#'+frameID),
- f = $f(frameID);
- f.addEvent('ready', function(){
-
- _nc.addClass("rs-apiready");
- f.addEvent('play', function(data) {
- _nc.data('nextslidecalled',0);
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:0,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
- opt.c.trigger('revolution.slide.onvideoplay',getVideoDatas(f,"vimeo",_nc.data()));
- opt.videoplaying=true;
- addVidtoList(_nc,opt);
- if (pforv)
- opt.c.trigger('stoptimer');
- if (_nc.data('volume')=="mute")
- f.api('setVolume',"0")
- else
- f.api('setVolume',(parseInt(_nc.data('volume'),0)/100 || 0.75));
- });
- f.addEvent('playProgress',function(data) {
- var et = getStartSec(_nc.data('videoendat'))
-
- if (et!=0 && (Math.abs(et-data.seconds) <0.3 && et>data.seconds) && _nc.data('nextslidecalled') != 1) {
- if (loop) {
-
- f.api("play");
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) f.api("seekTo",s);
- } else {
- if (_nc.data('nextslideatend')==true) {
- _nc.data('nextslidecalled',1);
- opt.c.revnext();
- }
- f.api("pause");
- }
- }
- });
- f.addEvent('finish', function(data) {
- remVidfromList(_nc,opt);
- opt.videoplaying=false;
- opt.c.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(f,"vimeo",_nc.data()));
- if (_nc.data('nextslideatend')==true)
- opt.c.revnext();
- });
- f.addEvent('pause', function(data) {
- if (_nc.find('.tp-videoposter').length>0 && _nc.data('showcoveronpause')=="on") {
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:1,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('iframe'),0.3,{autoAlpha:0,ease:punchgs.Power3.easeInOut});
- }
- opt.videoplaying=false;
- remVidfromList(_nc,opt);
- opt.c.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(f,"vimeo",_nc.data()));
- });
-
-
-
- _nc.find('.tp-videoposter').unbind("click");
- _nc.find('.tp-videoposter').click(function() {
- if (!_ISM) {
-
- f.api("play");
- return false;
- }
- })
- if (_nc.data('startvideonow')) {
-
- f.api("play");
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) f.api("seekTo",s);
- }
- _nc.data('videolistenerexist',1);
- });
- break;
- }
- } else {
- var s = getStartSec(_nc.data('videostartat'));
- switch (_nc.data('videotype')) {
- // YOUTUBE LISTENER
- case "youtube":
- if (startnow) {
- _nc.data('player').playVideo();
- if (s!=-1) _nc.data('player').seekTo()
- }
- break;
- case "vimeo":
- if (startnow) {
- var f = $f(_nc.find('iframe').attr("id"));
- f.api("play");
- if (s!=-1) f.api("seekTo",s);
- }
- break;
- }
- }
- }
- ///////////////////////////////////////// HTML5 VIDEOS ///////////////////////////////////////////
- var htmlvideoevents = function(_nc,opt,startnow) {
- if (_ISM && _nc.data('disablevideoonmobile')==1) return false;
- var jvideo = _nc.find('video'),
- video = jvideo[0],
- html5vid = jvideo.parent(),
- loop = _nc.data('videoloop'),
- pforv = loop != "loopandnoslidestop";
- loop = loop =="loop" || loop =="loopandnoslidestop";
- html5vid.data('metaloaded',1);
- // FIRST TIME LOADED THE HTML5 VIDEO
-
-
-
- //PLAY, STOP VIDEO ON CLICK OF PLAY, POSTER ELEMENTS
- if (jvideo.attr('control') == undefined ) {
- if (_nc.find('.tp-video-play-button').length==0 && !_ISM)
- _nc.append('<div class="tp-video-play-button"><i class="revicon-right-dir"></i><span class="tp-revstop"> </span></div>');
- _nc.find('video, .tp-poster, .tp-video-play-button').click(function() {
- if (_nc.hasClass("videoisplaying"))
- video.pause();
- else
- video.play();
- })
- }
- // PRESET FULLCOVER VIDEOS ON DEMAND
- if (_nc.data('forcecover')==1 || _nc.hasClass('fullscreenvideo')) {
- if (_nc.data('forcecover')==1) {
- html5vid.addClass("fullcoveredvideo");
- var asprat = _nc.data('aspectratio');
- _R.prepareCoveredVideo(asprat,opt,_nc);
- }
- else
- html5vid.addClass("fullscreenvideo");
- }
- // FIND CONTROL BUTTONS IN VIDEO, AND ADD EVENT LISTENERS ON THEM
- var playButton = _nc.find('.tp-vid-play-pause')[0],
- muteButton = _nc.find('.tp-vid-mute')[0],
- fullScreenButton = _nc.find('.tp-vid-full-screen')[0],
- seekBar = _nc.find('.tp-seek-bar')[0],
- volumeBar = _nc.find('.tp-volume-bar')[0];
- if (playButton!=undefined) {
- // Event listener for the play/pause button
- addEvent(playButton,"click", function() {
- if (video.paused == true)
- video.play();
- else
- video.pause();
- });
- // Event listener for the mute button
- addEvent(muteButton,"click", function() {
- if (video.muted == false) {
- video.muted = true;
- muteButton.innerHTML = "Unmute";
- } else {
- video.muted = false;
- muteButton.innerHTML = "Mute";
- }
- });
- // Event listener for the full-screen button
- if (fullScreenButton)
- addEvent(fullScreenButton,"click", function() {
- if (video.requestFullscreen) {
- video.requestFullscreen();
- } else if (video.mozRequestFullScreen) {
- video.mozRequestFullScreen(); // Firefox
- } else if (video.webkitRequestFullscreen) {
- video.webkitRequestFullscreen(); // Chrome and Safari
- }
- });
- // Event listener for the seek bar
- addEvent(seekBar,"change", function() {
- var time = video.duration * (seekBar.value / 100);
- video.currentTime = time;
- });
- // Update the seek bar as the video plays
- addEvent(video,"timeupdate", function() {
- var value = (100 / video.duration) * video.currentTime,
- et = getStartSec(_nc.data('videoendat')),
- cs =video.currentTime;
- seekBar.value = value;
- if (et!=0 && (Math.abs(et-cs) <=0.3 && et>cs) && _nc.data('nextslidecalled') != 1) {
- if (loop) {
- video.play();
- var s = getStartSec(_nc.data('videostartat'));
- if (s!=-1) video.currentTime = s;
- } else {
- if (_nc.data('nextslideatend')==true) {
- _nc.data('nextslidecalled',1);
- opt.c.revnext();
- }
- video.pause();
- }
- }
- });
- // Pause the video when the seek handle is being dragged
- addEvent(seekBar,"mousedown", function() {
- _nc.addClass("seekbardragged");
- video.pause();
- });
- // Play the video when the seek handle is dropped
- addEvent(seekBar,"mouseup", function() {
- _nc.removeClass("seekbardragged");
- video.play();
- });
- // Event listener for the volume bar
- addEvent(volumeBar,"change", function() {
- // Update the video volume
- video.volume = volumeBar.value;
- });
- }
- // VIDEO EVENT LISTENER FOR "PLAY"
- addEvent(video,"play",function() {
- _nc.data('nextslidecalled',0);
- if (_nc.data('volume')=="mute")
- video.muted=true;
- _nc.addClass("videoisplaying");
- addVidtoList(_nc,opt);
- if (!pforv) {
- opt.videoplaying=false;
- opt.c.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(video,"html5",_nc.data()));
- } else {
- opt.videoplaying=true;
- opt.c.trigger('stoptimer');
- opt.c.trigger('revolution.slide.onvideoplay',getVideoDatas(video,"html5",_nc.data()));
- }
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:0,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('video'),0.3,{autoAlpha:1,display:"block",ease:punchgs.Power3.easeInOut});
- var playButton = _nc.find('.tp-vid-play-pause')[0],
- muteButton = _nc.find('.tp-vid-mute')[0];
- if (playButton!=undefined)
- playButton.innerHTML = "Pause";
- if (muteButton!=undefined && video.muted)
- muteButton.innerHTML = "Unmute";
- });
- // VIDEO EVENT LISTENER FOR "PAUSE"
- addEvent(video,"pause",function() {
-
- if (_nc.find('.tp-videoposter').length>0 && _nc.data('showcoveronpause')=="on" && !_nc.hasClass("seekbardragged")) {
- punchgs.TweenLite.to(_nc.find('.tp-videoposter'),0.3,{autoAlpha:1,force3D:"auto",ease:punchgs.Power3.easeInOut});
- punchgs.TweenLite.to(_nc.find('video'),0.3,{autoAlpha:0,ease:punchgs.Power3.easeInOut});
- }
-
- _nc.removeClass("videoisplaying");
- opt.videoplaying=false;
- remVidfromList(_nc,opt);
- opt.c.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(video,"html5",_nc.data()));
- var playButton = _nc.find('.tp-vid-play-pause')[0];
- if (playButton!=undefined)
- playButton.innerHTML = "Play";
- });
- // VIDEO EVENT LISTENER FOR "END"
- addEvent(video,"ended",function() {
- remVidfromList(_nc,opt);
- opt.videoplaying=false;
- remVidfromList(_nc,opt);
- opt.c.trigger('starttimer');
- opt.c.trigger('revolution.slide.onvideostop',getVideoDatas(video,"html5",_nc.data()));
- if (_nc.data('nextslideatend')==true)
- opt.c.revnext();
- _nc.removeClass("videoisplaying");
-
-
- });
- }
- var addVidtoList = function(_nc,opt) {
-
- if (opt.playingvideos == undefined) opt.playingvideos = new Array();
-
- // STOP OTHER VIDEOS
- if (_nc.data('stopallvideos')) {
- if (opt.playingvideos != undefined && opt.playingvideos.length>0) {
- opt.lastplayedvideos = jQuery.extend(true,[],opt.playingvideos);
- jQuery.each(opt.playingvideos,function(i,_nc) {
- _R.stopVideo(_nc,opt);
- });
- }
- }
- opt.playingvideos.push(_nc);
- }
- var remVidfromList = function(_nc,opt) {
- if (opt.playingvideos != undefined)
- opt.playingvideos.splice(jQuery.inArray(_nc,opt.playingvideos),1);
- }
-
- })(jQuery);
|