PageSourceSearch

https://matsumoto.ed.jp/wp-content/themes/insp_para/framework/js/pe/jquery.pixelentity.video.js?ver=1561346633

js matsumoto.ed.jp collected 2026-10-05 09:39:31 UTC 7,432 bytes, 323 lines download raw bytes

1(function ($) {
2	/*jslint undef: false, browser: true, devel: false, eqeqeq: false, bitwise: false, white: false, plusplus: false, regexp: false, nomen: false */ 
3	/*global jQuery,setTimeout,projekktor,location,setInterval,YT,clearInterval */
4
5	$.pixelentity = $.pixelentity || {version: '1.0.0'};
6	
7	function SimplePlayer(target,w,h,sources,poster) {
8		
9		var video;
10		
11		
12		function play() {
13			video[0].play();
14		}
15		
16		video = $('<video autoplay controls="controls" preload="none" autobuffer height="'+h+'" width="'+w+'" poster="'+(poster ? poster : "")+'"></video>');
17		for (var i in sources) {
18			if (typeof i === "string") {
19				video.append('<source src="'+sources[i].src+'" type="'+sources[i].type+'">');
20			}
21		}
22		video.bind("click",play);
23		
24		target.append(video);
25		setTimeout(ready,100);
26		
27		function ready() {
28			video.triggerHandler("ready");
29			video.triggerHandler("buffer");
30		}
31
32		
33		function destroy() {
34			video
35				.unbind("click",play)
36				.detach()
37				.empty();
38			video = undefined;
39		}
40		
41		function addListener(type,listener) {
42			video.bind(type,listener);
43		}
44		
45		function removeListener(type,listener) {
46			video.unbind(type,listener);
47		}
48		
49		$.extend(this, {
50			destroy: destroy,
51			addListener: addListener,
52			removeListener: removeListener
53		});
54		
55	}
56
57	
58	$.pixelentity.video = {	
59		conf: { 
60			disableFade: false,
61			useVideoTag: false
62		},
63		getType: function(src) {
64			return 'video/'+src.match(/(\w+)$/)[1].replace("ogv","ogg");
65		},
66		fallbackPlayer: "js/template/video/jarisplayer.swf",
67		SimplePlayer: SimplePlayer
68	};
69	
70	var iDev = navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad|android)/);
71	var instances = 0;
72	
73	function PeVideo(t, conf) {
74		var jthis = $(this);
75		var target = t;
76		var player;
77		var checkTimer;
78		var ready = false;
79		
80		function start() {
81			switch (conf.type) {
82				case "youtube":
83					$.pixelentity.youtube(youtubePlayerReady);
84				break;
85				case "vimeo":
86					$.pixelentity.vimeo(vimeoPlayerReady);
87				break;
88				case "vidly":
89					localVideo([
90						"http://vid.ly/"+conf.videoId+"?content=video&format=mp4",
91						"http://vid.ly/"+conf.videoId+"?content=video&format=webm",
92						"http://vid.ly/"+conf.videoId+"?content=video&format=ogv"
93					],conf.poster);
94				break;
95				case "local":
96					localVideo(conf.videoId,conf.poster);
97				break;
98			}
99		} 
100		
101		function localVideo(srcs,poster) {
102			
103			var video = {};
104			
105			for (var i=0;i<srcs.length;i++) {
106				video[i] = {
107					src: srcs[i],
108					type: $.pixelentity.video.getType(srcs[i])
109				};
110			}
111			
112			if (conf.useVideoTag) {
113				player = new $.pixelentity.video.SimplePlayer(target,conf.width,conf.height,video,poster);
114			} else {
115				
116				instances++;
117				var id = 'pe_local_player_'+(instances);
118				var vid = $('<div id="'+(id)+'"/>').css({
119						"background-color": "black",
120						"width": conf.width,
121						"height": conf.height
122					});
123				target.html(vid[0]);	
124
125				player = new projekktor("#"+id, {
126					disableFade: conf.disableFade,
127					controls: true,
128					volume: 0.9,
129					_width: conf.width,
130					_height: conf.height,
131					_autoplay: true,
132					enableFullscreen: false,
133					imageScaling: "fill",
134					videoScaling: "aspectratio",
135					//_plugins: ['Display', 'Controlbar'],
136					poster: poster,
137					playerFlashMP4: $.pixelentity.video.fallbackPlayer,
138					playerFlashMP3: $.pixelentity.video.fallbackPlayer,
139					playlist: [video]
140				});
141				
142	
143			}
144			
145			player.addListener(iDev ? 'ready' : 'buffer',localVideoBuffer);
146			
147		}
148		
149		function localVideoBuffer(value) {
150			if (iDev) {
151				setTimeout(fireReadyEvent,100);
152				player.removeListener('ready',localVideoBuffer);
153			} else if (value == "FULL" || conf.useVideoTag) {
154				player.removeListener('buffer',localVideoBuffer);
155				fireReadyEvent();
156			}
157		}
158		
159		function youtubePlayerReady(ytplayer) {
160			var div=$("<div/>");
161            target.append(div);
162			player = new ytplayer(div[0], {
163				height: conf.height,
164				width: conf.width,
165				videoId: conf.videoId,
166				playerVars: {
167					theme: "dark",
168					wmode: "opaque",
169					autohide: 1,
170					enablejsapi: 1,
171					origin: location.href.match(/:\/\/(.[^\/]+)/)[1],
172					loop: conf.loop ? 1 : 0,
173					hd: conf.hd ? 1 : 0,
174					autoplay: conf.autoPlay ? 1 : 0,
175					showinfo:0,
176					iv_load_policy:3,
177					modestbranding:1,
178					showsearch:0,
179					fs:0
180				},
181				events: {
182				  'onStateChange': ytStateChange,
183				  'onReady': fireReadyEvent
184				}
185			});
186			player.peUseHD = conf.hd;
187			checkTimer = setInterval(ytStateChange,250);
188			if ($.browser.msie && $.browser.version < 8) {
189				setTimeout(fireReadyEvent,1000);
190			}
191		}
192		
193		function fireReadyEvent() {
194			if (!ready) {
195				jthis.trigger("video_ready.pixelentity");
196				ready = true;
197			}
198		}
199		
200		function vimeoPlayerReady(vimeoplayer) {
201			player = new vimeoplayer(target[0], {
202				height: conf.height,
203				width: conf.width,
204				videoId: conf.videoId,
205				playerVars: {
206					autohide: 0,
207					origin: location.href.match(/:\/\/(.[^\/]+)/)[1],
208					loop: conf.loop ? 1 : 0,
209					autoplay: conf.autoPlay ? 1 : 0
210				}
211			});
212			$(player)
213				.one("video_ready.pixelentity",fireReadyEvent)
214				.one("video_ended.pixelentity",vimeoVideoEnded);
215		}
216		
217		function vimeoVideoEnded() {
218			jthis.trigger("video_ended.pixelentity");
219		}
220		
221		function ytStateChange() {
222			if (!player) {return;}
223			if (player.getPlayerState) {
224				if (player.peUseHD && player.getPlaybackQuality) {
225					if (player.getPlaybackQuality() != "hd720") {
226						player.setPlaybackQuality("hd720");					
227					}
228				}				
229				switch (player.getPlayerState()) {
230				case YT.PlayerState.ENDED:
231					jthis.trigger("video_ended.pixelentity");
232					break;
233				case YT.PlayerState.PLAYING:
234					if ((player.getDuration()-player.getCurrentTime()) < 0.4) {
235						jthis.trigger("video_ended.pixelentity");
236					}
237					break;
238				}
239			}
240		}
241		
242		function resize(w,h) {
243			if (player && player.setSize) {
244				player.setSize({width:w, height: h});
245			}
246		}
247
248		
249		$.extend(this, {
250			resize: resize,
251			bind: function(ev,handler) {
252				jthis.bind(ev,handler);
253			},
254			unbind: function(ev,handler) {
255				jthis.unbind(ev,handler);
256			},
257			one: function(ev,handler) {
258				jthis.one(ev,handler);
259			},
260			destroy: function() {
261				clearInterval(checkTimer);
262				if (jthis) {
263					jthis.remove();
264				}
265				jthis = undefined;
266				if (player) {
267					$(player).unbind("video_ended.pixelentity");
268					
269					switch (conf.type) {
270						case "vidly":
271						case "local":
272						if (player.removeListener) {
273							player.removeListener(iDev ? 'ready' : 'buffer',localVideoBuffer);
274						}
275						if (conf.useVideoTag) {
276							if (player.destroy) {
277								player.destroy();
278							}	
279						} else {
280							if (player.selfDestruct) {
281								player.selfDestruct();
282							}	
283						}
284						break;
285						default:
286							if (player.destroy) {
287								player.destroy();
288							}
289					}
290				}
291				player = undefined;
292				target.data("peVideo", null);
293				target = undefined;
294				
295			}
296		});
297		
298		start();
299		
300		
301	}
302	
303	// jQuery plugin implementation
304	$.fn.peVideo = function(conf) {
305		// return existing instance
306		var api = this.data("peVideo");
307		
308		if (api) { 
309			return api; 
310		}
311
312		conf = $.extend(true, {}, $.pixelentity.video.conf, conf);
313		
314		// install kb for each entry in jQuery object
315		this.each(function() {
316			api = new PeVideo($(this), conf);
317			$(this).data("peVideo", api); 
318		});
319		
320		return conf.api ? api: this;		 
321	};
322		
323}(jQuery));

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.