/** * Copyright 2014 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var player = videojs('content_video'); var options = { id: 'content_video', autoPlayAdBreaks: false, adTagUrl: 'https://googleads.g.doubleclick.net/pagead/ads?ad_type=video&client=ca-video-pub-4968145218643279&videoad_start_delay=0&description_url=https://www.blu-ray.com&max_ad_duration=40000&adtest=on' /* adTagUrl: 'http://pubads.g.doubleclick.net/gampad/ads?sz=640x480&' + 'iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&' + 'impl=s&gdfp_req=1&env=vp&output=xml_vmap1&unviewed_position_start=1&' + 'cust_params=sample_ar%3Dpremidpostpod%26deployment%3Dgmf-js&cmsid=496&' + 'vid=short_onecue&correlator=' */ } player.ima(options); var adnum = 1; function myAdBreakReadyListener() { console.log('my ad break'); adnum = adnum + 1; if(adcomplete == 1) // if(player.currentTime() > 0 && player.currentTime() < player.duration()) { player.ima.getAdsManager().discardAdBreak(); console.log(">>> skip ad break: " + new Date().getTime()); } } player.ima.setAdBreakReadyListener(myAdBreakReadyListener); // Remove controls from the player on iPad to stop native controls from stealing // our click var contentPlayer = document.getElementById('content_video_html5_api'); if((navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i)) && contentPlayer.hasAttribute('controls')) { contentPlayer.removeAttribute('controls'); } var startEvent = 'click'; if(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i)) { startEvent = 'touchend'; } // Initialize the ad container when the video player is clicked, but only the // first time it's clicked. var initAdDisplayContainer = function() { player.ima.initializeAdDisplayContainer(); wrapperDiv.removeEventListener(startEvent, initAdDisplayContainer); console.log('init ad container:\n'); } var wrapperDiv = document.getElementById('content_video'); wrapperDiv.addEventListener(startEvent, initAdDisplayContainer); var adcomplete = 0; var adstarted = 0; player.on("adsready", function() { player.ima.addEventListener(google.ima.AdEvent.Type.LOADED, function() { console.log(">>> ad loaded: " + new Date().getTime()); if(adcomplete == 1) // if(player.currentTime() > 0 && player.currentTime() < player.duration()) { console.log(player.ima.getAdsManager().getCuePoints()); player.ima.getAdsManager().discardAdBreak(); console.log(">>> skip ad break: " + new Date().getTime()); } }); player.ima.addEventListener(google.ima.AdEvent.Type.STARTED, function() { console.log(">>> ad started: " + new Date().getTime()); adstarted = 1; }); player.ima.addEventListener(google.ima.AdEvent.Type.COMPLETE, function() { console.log(">>> ad complete: " + new Date().getTime()); adcomplete = 1; }); }); player.on("readyforpreroll", function() { console.log('>>> ready for preroll: ' + new Date().getTime()); player.ima.playAdBreak(); }); player.on("readyforpostroll", function() { console.log('>>> ready for postroll: ' + new Date().getTime()); // player.ima.playAdBreak(); }); player.on("play", function() { console.log('>>> video play: ' + new Date().getTime()); }); player.on("contentended", function() { console.log(">>> content ended: " + new Date().getTime()); if(player.isFullscreen()) player.exitFullscreen(); else $('#triggers a[rel]').overlay().close(); }); player.on("ended", function() { console.log(">>> video ended: " + new Date().getTime()); // $('#triggers a[rel]').overlay().close(); // rewind the video // player.currentTime(0); // player.pause(); // player.currentTime(0); // player.pause(); }); player.on("fullscreenchange", function() { console.log(">>> full screen change: " + new Date().getTime()); if(!player.isFullscreen()) $('#triggers a[rel]').overlay().close(); });