1/** 2 * Copyright 2014 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17var player = videojs('content_video'); 18 19var options = { 20 id: 'content_video', 21 autoPlayAdBreaks: false, 22 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' 23/* 24 adTagUrl: 'http://pubads.g.doubleclick.net/gampad/ads?sz=640x480&' + 25 'iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&' + 26 'impl=s&gdfp_req=1&env=vp&output=xml_vmap1&unviewed_position_start=1&' + 27 'cust_params=sample_ar%3Dpremidpostpod%26deployment%3Dgmf-js&cmsid=496&' + 28 'vid=short_onecue&correlator=' 29*/ 30} 31 32player.ima(options); 33 34var adnum = 1; 35function myAdBreakReadyListener() { 36 console.log('my ad break'); 37 adnum = adnum + 1; 38 39 if(adcomplete == 1) 40// if(player.currentTime() > 0 && player.currentTime() < player.duration()) 41 { 42 player.ima.getAdsManager().discardAdBreak(); 43 console.log(">>> skip ad break: " + new Date().getTime()); 44 } 45} 46 47player.ima.setAdBreakReadyListener(myAdBreakReadyListener); 48 49// Remove controls from the player on iPad to stop native controls from stealing 50// our click 51var contentPlayer = document.getElementById('content_video_html5_api'); 52if((navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i)) && contentPlayer.hasAttribute('controls')) { 53 contentPlayer.removeAttribute('controls'); 54} 55 56var startEvent = 'click'; 57if(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i)) { 58 startEvent = 'touchend'; 59} 60 61// Initialize the ad container when the video player is clicked, but only the 62// first time it's clicked. 63var initAdDisplayContainer = function() { 64 player.ima.initializeAdDisplayContainer(); 65 wrapperDiv.removeEventListener(startEvent, initAdDisplayContainer); 66 console.log('init ad container:\n'); 67} 68 69var wrapperDiv = document.getElementById('content_video'); 70wrapperDiv.addEventListener(startEvent, initAdDisplayContainer); 71 72var adcomplete = 0; 73var adstarted = 0; 74player.on("adsready", function() { 75 player.ima.addEventListener(google.ima.AdEvent.Type.LOADED, function() { 76 console.log(">>> ad loaded: " + new Date().getTime()); 77 if(adcomplete == 1) 78// if(player.currentTime() > 0 && player.currentTime() < player.duration()) 79 { 80 console.log(player.ima.getAdsManager().getCuePoints()); 81 player.ima.getAdsManager().discardAdBreak(); 82 console.log(">>> skip ad break: " + new Date().getTime()); 83 } 84 }); 85 86 player.ima.addEventListener(google.ima.AdEvent.Type.STARTED, function() { 87 console.log(">>> ad started: " + new Date().getTime()); 88 adstarted = 1; 89 }); 90 91 player.ima.addEventListener(google.ima.AdEvent.Type.COMPLETE, function() { 92 console.log(">>> ad complete: " + new Date().getTime()); 93 adcomplete = 1; 94 }); 95}); 96 97player.on("readyforpreroll", function() { 98 console.log('>>> ready for preroll: ' + new Date().getTime()); 99 player.ima.playAdBreak(); 100}); 101 102player.on("readyforpostroll", function() { 103 console.log('>>> ready for postroll: ' + new Date().getTime()); 104// player.ima.playAdBreak(); 105}); 106 107player.on("play", function() { 108 console.log('>>> video play: ' + new Date().getTime()); 109}); 110 111player.on("contentended", function() { 112 console.log(">>> content ended: " + new Date().getTime()); 113 114 if(player.isFullscreen()) 115 player.exitFullscreen(); 116 else 117 $('#triggers a[rel]').overlay().close(); 118}); 119 120player.on("ended", function() { 121 console.log(">>> video ended: " + new Date().getTime()); 122 123// $('#triggers a[rel]').overlay().close(); 124 125 // rewind the video 126// player.currentTime(0); 127// player.pause(); 128 129// player.currentTime(0); 130// player.pause(); 131}); 132 133player.on("fullscreenchange", function() { 134 console.log(">>> full screen change: " + new Date().getTime()); 135 136 if(!player.isFullscreen()) 137 $('#triggers a[rel]').overlay().close(); 138});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.