Version Description
May 19, 2013 =
* Updated Video.js to version 4.0 and created a new skin that approximates the old one. Older versions of Video.js had some security holes, so this update is highly recommended.
* Significantly reduced inline JavaScript generated by the plugin.
* Fixed bug that disabled Strobe Media Playback player and caused "TypeError: Error #1034" messages, particularly in Internet Explorer.
* Fixed bug that caused view count to be replaced by complete views when the end of the video is reached.
* Fixed bug that disabled video encode status monitoring in media modal popup when the same video was already in the post edit window.
* Fixed missing "document." in JavaScript when choosing thumbnails which prevented some users from properly selecting and saving generated thumbnails.
* Fixed bug that displayed WordPress thumbnail-sized poster image if no poster URL was in shortcode.
* Tweaked video resize method to support more kinds of themes.
* Added ability to turn off watermark on individual videos by entering watermark="false"
in the shortcode.
* Added option to disable embedding on other websites.
* Added option to allow videos to be placed next to each other on the page.
* Added support for AAC library libfdk_aac.
* Adjusted embedded video and gallery CSS to account for colored backgrounds.
* Renamed "Poster image" plugin setting to "Default thumbnail"
* Removed post meta box below post editing window until I can work out a way to generate them without disabling video encode status monitoring in media modal popup when the same video is already in the post edit window.
* Replaced deprecated ereg PHP function with preg_match and used a more precise regular expression when determining the height and width of videos.
Release Info
Developer | kylegilman |
Plugin | Video Embed & Thumbnail Generator |
Version | 4.1 |
Comparing to | |
See all releases |
Code changes from version 4.0.3 to 4.1
- css/kgvid_styles.css +1 -1
- js/kgvid_video_embed.js +137 -43
- js/kgvid_video_plugin_admin.js +10 -10
- readme.txt +31 -8
- video-embed-thumbnail-generator.php +89 -87
- video-js/font/vjs.eot +0 -0
- video-js/font/vjs.svg +40 -0
- video-js/font/vjs.ttf +0 -0
- video-js/font/vjs.woff +0 -0
- video-js/kg-video-js-skin.css +484 -312
- video-js/kg-video-js-skin.png +0 -0
- video-js/video-js.css +730 -1
- video-js/video-js.png +0 -0
- video-js/video-js.swf +0 -0
- video-js/video.js +121 -21
@@ -1,6 +1,5 @@
|
|
1 |
.kgvid_wrapper {
|
2 |
margin: 1em 0px;
|
3 |
-
display: inline-block;
|
4 |
position: relative;
|
5 |
}
|
6 |
|
@@ -124,6 +123,7 @@ img.kgvid_ios_novideo {
|
|
124 |
|
125 |
.kgvid_video_gallery_thumb {
|
126 |
position: relative;
|
|
|
127 |
display:inline-block;
|
128 |
margin:10px;
|
129 |
cursor: pointer; !important
|
1 |
.kgvid_wrapper {
|
2 |
margin: 1em 0px;
|
|
|
3 |
position: relative;
|
4 |
}
|
5 |
|
123 |
|
124 |
.kgvid_video_gallery_thumb {
|
125 |
position: relative;
|
126 |
+
float: left;
|
127 |
display:inline-block;
|
128 |
margin:10px;
|
129 |
cursor: pointer; !important
|
@@ -1,4 +1,11 @@
|
|
|
|
|
|
1 |
function kgvid_SetVideo(suffix, site_url, id, width, height) {
|
|
|
|
|
|
|
|
|
|
|
2 |
jQuery('#kgvid_GalleryPlayerDiv_'+suffix).html('<iframe id="kgvid_GalleryVideo_'+id+'" src="'+site_url+'?attachment_id='+id+'&kgvid_video_embed[enable]=true&kgvid_video_embed[gallery]=true&kgvid_video_embed[width]='+width+'&kgvid_video_embed[height]='+height+'" scrolling="no" width="'+width+'" height="'+height+'" frameborder="0" webkitallowfullscreen="" allowfullscreen=""></iframe>');
|
3 |
jQuery('#kgvid_GalleryPlayerDiv_'+suffix).dialog("option", "width", parseInt(width)+6);
|
4 |
jQuery('#kgvid_GalleryPlayerDiv_'+suffix).dialog('open');
|
@@ -6,50 +13,120 @@ function kgvid_SetVideo(suffix, site_url, id, width, height) {
|
|
6 |
jQuery('.ui-widget-overlay').click(function () { jQuery('#kgvid_GalleryPlayerDiv_'+suffix).dialog('close'); });
|
7 |
}
|
8 |
|
9 |
-
function kgvid_setup_video(id
|
10 |
-
var
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
if ( player_type == "Strobe Media Playback" ) {
|
15 |
-
if ( set_volume != "" ) { document.getElementById('video_'+id+'html5_api').setVolume(set_volume); }
|
16 |
-
jQuery('#video_'+id+'_div').hover(function(){ jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover'); },function(){ jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover'); });
|
17 |
-
}
|
18 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_watermark'));
|
19 |
jQuery('#video_'+id+'_watermark').attr('style', ''); //shows the hidden watermark div
|
20 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_meta'));
|
21 |
jQuery('#video_'+id+'_meta').attr('style', ''); //shows the hidden meta div
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
}
|
23 |
|
24 |
-
function
|
25 |
-
var
|
26 |
-
|
27 |
-
var poster = player.options.poster;
|
28 |
-
if ( source != "" ) {
|
29 |
-
player.tag.src = '';
|
30 |
-
player.tech.removeTriggers();
|
31 |
-
player.load();
|
32 |
-
player.destroy();
|
33 |
-
var ios_video = '<video id="video_'+id+'" controls preload="metadata"';
|
34 |
-
if ( poster != null ) { ios_video += ' poster="'+poster+'" '; }
|
35 |
-
ios_video += '\><source src="'+source+'" type="video/mp4" /></video>';
|
36 |
-
}
|
37 |
-
else {
|
38 |
-
var ios_video = '<div id="video_'+id+'" style="background-color:black;"><div class="kgvid_ios_novideo"></div>';
|
39 |
-
if ( poster != null ) { ios_video += '<img class="kgvid_ios_novideo" src="'+poster+'">'; }
|
40 |
-
ios_video += '</div>';
|
41 |
}
|
42 |
-
jQuery(player.el).remove();
|
43 |
-
console.log(ios_video);
|
44 |
-
jQuery('#video_'+id+'_div').prepend(ios_video);
|
45 |
-
if ( source != "" ) { document.getElementById('video_'+id).load(); }
|
46 |
}
|
47 |
|
48 |
-
function kgvid_resize_video(id
|
|
|
|
|
|
|
|
|
49 |
var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? true : false );
|
50 |
-
if ( iOS ) { player_type = "iOS"; }
|
51 |
var aspect_ratio = Math.round(set_height/set_width*1000)/1000
|
52 |
-
var
|
|
|
|
|
53 |
if ( parent_width < set_width ) { set_width = parent_width; }
|
54 |
set_width = parseInt(set_width);
|
55 |
|
@@ -57,18 +134,19 @@ function kgvid_resize_video(id, player_type, set_width, set_height) {
|
|
57 |
|
58 |
jQuery('#kgvid_'+id+'_wrapper').width(set_width);
|
59 |
var set_height = Math.round(set_width * aspect_ratio);
|
60 |
-
if (
|
61 |
-
|
62 |
if ( set_width < 500 ) {
|
63 |
var scale = Math.round(100*set_width/500)/100;
|
64 |
jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').css('-webkit-transform','scale('+scale+')').css('-o-transform','scale('+scale+')').css('-ms-transform','scale('+scale+')').css('transform','scale('+scale+')');
|
65 |
}
|
66 |
}
|
67 |
-
if ( player_type == "Strobe Media Playback" ) {
|
68 |
jQuery('#video_'+id+'_div').height(set_height);
|
|
|
69 |
jQuery('#video_'+id+'_html5_api').attr('width',set_width).attr('height',set_height);
|
70 |
}
|
71 |
-
if ( player_type == "iOS" ) {
|
72 |
jQuery('#video_'+id).attr('width',set_width).attr('height',set_height);
|
73 |
jQuery('#video_'+id).width(set_width).height(set_height);
|
74 |
}
|
@@ -82,24 +160,40 @@ function kgvid_resize_video(id, player_type, set_width, set_height) {
|
|
82 |
width_remove = 0;
|
83 |
if ( jQuery('#video_'+id+'_viewcount').length ) { width_remove = jQuery('#video_'+id+'_viewcount').width()+20; }
|
84 |
jQuery('#video_'+id+'_caption').width(set_width-width_remove); //wraps long captions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
86 |
|
87 |
-
function kgvid_video_counter(id, event
|
|
|
|
|
88 |
var changed = false;
|
89 |
|
90 |
var played = jQuery('#video_'+id+'_div').data("played") || "not played";
|
91 |
if ( played == "not played" ) {
|
92 |
-
if (countable) { //video is in the db
|
93 |
changed = true;
|
94 |
jQuery('#video_'+id+'_div').data("played", "played");
|
95 |
}
|
96 |
-
if (typeof _gaq != "undefined") { _gaq.push(["_trackEvent", "Videos", "Play Start", title]); }
|
97 |
}
|
98 |
if ( event == "end" ) {
|
99 |
-
if (countable) { //video is in the db
|
100 |
changed = true;
|
101 |
}
|
102 |
-
if (typeof _gaq != 'undefined') { _gaq.push(['_trackEvent', 'Videos', 'Complete View', title]); }
|
103 |
}
|
104 |
if ( changed == true ) {
|
105 |
jQuery.post(ajax_object.ajaxurl, {
|
@@ -107,7 +201,7 @@ function kgvid_video_counter(id, event, countable, title) {
|
|
107 |
post_id: id,
|
108 |
video_event: event
|
109 |
}, function(data) {
|
110 |
-
jQuery('#video_'+id+'_viewcount').html(data+' views');
|
111 |
});
|
112 |
}
|
113 |
}
|
1 |
+
var kgvid_video_vars = {};
|
2 |
+
|
3 |
function kgvid_SetVideo(suffix, site_url, id, width, height) {
|
4 |
+
var aspect_ratio = Math.round(height/width*1000)/1000
|
5 |
+
if ( width > screen.width ) {
|
6 |
+
width = screen.width-6;
|
7 |
+
height = Math.round(width * aspect_ratio);
|
8 |
+
}
|
9 |
jQuery('#kgvid_GalleryPlayerDiv_'+suffix).html('<iframe id="kgvid_GalleryVideo_'+id+'" src="'+site_url+'?attachment_id='+id+'&kgvid_video_embed[enable]=true&kgvid_video_embed[gallery]=true&kgvid_video_embed[width]='+width+'&kgvid_video_embed[height]='+height+'" scrolling="no" width="'+width+'" height="'+height+'" frameborder="0" webkitallowfullscreen="" allowfullscreen=""></iframe>');
|
10 |
jQuery('#kgvid_GalleryPlayerDiv_'+suffix).dialog("option", "width", parseInt(width)+6);
|
11 |
jQuery('#kgvid_GalleryPlayerDiv_'+suffix).dialog('open');
|
13 |
jQuery('.ui-widget-overlay').click(function () { jQuery('#kgvid_GalleryPlayerDiv_'+suffix).dialog('close'); });
|
14 |
}
|
15 |
|
16 |
+
function kgvid_setup_video(id) {
|
17 |
+
var video_vars = kgvid_video_vars[id];
|
18 |
+
var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? true : false );
|
19 |
+
if (iOS) { video_vars.player_type = "Video.js"; }
|
20 |
+
|
|
|
|
|
|
|
|
|
21 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_watermark'));
|
22 |
jQuery('#video_'+id+'_watermark').attr('style', ''); //shows the hidden watermark div
|
23 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_meta'));
|
24 |
jQuery('#video_'+id+'_meta').attr('style', ''); //shows the hidden meta div
|
25 |
+
|
26 |
+
if ( video_vars.player_type == "Video.js" ) {
|
27 |
+
|
28 |
+
var player = videojs('video_'+id);
|
29 |
+
|
30 |
+
if ( video_vars.set_volume != "" ) { player.volume(video_vars.set_volume); }
|
31 |
+
|
32 |
+
player.on('play', function(){
|
33 |
+
if ( video_vars.meta ) {
|
34 |
+
jQuery('#video_'+id+'_div').hover(
|
35 |
+
function(){
|
36 |
+
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
37 |
+
},
|
38 |
+
function(){
|
39 |
+
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
40 |
+
}
|
41 |
+
);
|
42 |
+
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
43 |
+
}
|
44 |
+
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+' > .vjs-control-bar').removeClass('vjs-fade-in'); }
|
45 |
+
kgvid_video_counter(id, 'play');
|
46 |
+
});
|
47 |
+
|
48 |
+
player.on('ended', function(){
|
49 |
+
kgvid_video_counter(id, 'end');
|
50 |
+
setTimeout(function() { jQuery('#video_'+id+' > .vjs-loading-spinner').hide(); }, 250);
|
51 |
+
});
|
52 |
+
|
53 |
+
player.on('fullscreenchange', function(){
|
54 |
+
|
55 |
+
var
|
56 |
+
fullScreenApi = {
|
57 |
+
supportsFullScreen: false,
|
58 |
+
isFullScreen: function() { return false; },
|
59 |
+
requestFullScreen: function() {},
|
60 |
+
cancelFullScreen: function() {},
|
61 |
+
fullScreenEventName: '',
|
62 |
+
prefix: ''
|
63 |
+
},
|
64 |
+
browserPrefixes = 'webkit moz o ms khtml'.split(' ');
|
65 |
+
|
66 |
+
// check for native support
|
67 |
+
if (typeof document.cancelFullScreen != 'undefined') {
|
68 |
+
fullScreenApi.supportsFullScreen = true;
|
69 |
+
} else {
|
70 |
+
// check for fullscreen support by vendor prefix
|
71 |
+
for (var i = 0, il = browserPrefixes.length; i < il; i++ ) {
|
72 |
+
fullScreenApi.prefix = browserPrefixes[i];
|
73 |
+
if (typeof document[fullScreenApi.prefix + 'CancelFullScreen' ] != 'undefined' ) {
|
74 |
+
fullScreenApi.supportsFullScreen = true;
|
75 |
+
break;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
if ( fullScreenApi.supportsFullScreen == true ) { jQuery('#video_'+id).removeClass('vjs-fullscreen'); }
|
81 |
+
else if ( jQuery('#video_'+id).hasClass('vjs-fullscreen') ) {
|
82 |
+
jQuery('#video_'+id+'_meta').hide();
|
83 |
+
jQuery('#video_'+id+'_watermark img').css('position', 'fixed');
|
84 |
+
}
|
85 |
+
else {
|
86 |
+
jQuery('#video_'+id+'_meta').show();
|
87 |
+
jQuery('#video_'+id+'_watermark img').css('position', 'absolute');
|
88 |
+
}
|
89 |
+
|
90 |
+
});
|
91 |
+
|
92 |
+
} //end if Video.js
|
93 |
+
|
94 |
+
if ( video_vars.player_type == "Strobe Media Playback" ) {
|
95 |
+
|
96 |
+
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover'); }
|
97 |
+
jQuery('#video_'+id+'_div').hover(
|
98 |
+
function(){
|
99 |
+
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
100 |
+
jQuery('#video_'+id+'_watermark').fadeOut(100);
|
101 |
+
},
|
102 |
+
function(){
|
103 |
+
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
104 |
+
setTimeout(function(){jQuery('#video_'+id+'_watermark').fadeIn('slow');},3000);
|
105 |
+
}
|
106 |
+
);
|
107 |
+
} //end if Strobe Media Playback
|
108 |
+
|
109 |
+
kgvid_resize_video(id);
|
110 |
+
window.addEventListener('resize', kgvid_resize_all_videos, false);
|
111 |
}
|
112 |
|
113 |
+
function kgvid_resize_all_videos() {
|
114 |
+
for (var id in kgvid_video_vars) {
|
115 |
+
kgvid_resize_video(id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
|
|
|
|
|
|
|
|
117 |
}
|
118 |
|
119 |
+
function kgvid_resize_video(id) {
|
120 |
+
|
121 |
+
var video_vars = kgvid_video_vars[id];
|
122 |
+
var set_width = video_vars.width;
|
123 |
+
var set_height = video_vars.height;
|
124 |
var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? true : false );
|
125 |
+
if ( iOS ) { video_vars.player_type = "iOS"; }
|
126 |
var aspect_ratio = Math.round(set_height/set_width*1000)/1000
|
127 |
+
var reference_div = jQuery('#kgvid_'+id+'_wrapper').parent().children().first();
|
128 |
+
if ( reference_div.attr('id') == 'kgvid_'+id+'_wrapper' ) { reference_div = jQuery('#kgvid_'+id+'_wrapper').parent(); }
|
129 |
+
parent_width = reference_div.width();
|
130 |
if ( parent_width < set_width ) { set_width = parent_width; }
|
131 |
set_width = parseInt(set_width);
|
132 |
|
134 |
|
135 |
jQuery('#kgvid_'+id+'_wrapper').width(set_width);
|
136 |
var set_height = Math.round(set_width * aspect_ratio);
|
137 |
+
if ( video_vars.player_type == "Video.js" ) {
|
138 |
+
videojs('video_'+id).width(set_width).height(set_height);
|
139 |
if ( set_width < 500 ) {
|
140 |
var scale = Math.round(100*set_width/500)/100;
|
141 |
jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').css('-webkit-transform','scale('+scale+')').css('-o-transform','scale('+scale+')').css('-ms-transform','scale('+scale+')').css('transform','scale('+scale+')');
|
142 |
}
|
143 |
}
|
144 |
+
if ( video_vars.player_type == "Strobe Media Playback" ) {
|
145 |
jQuery('#video_'+id+'_div').height(set_height);
|
146 |
+
jQuery('#video_'+id).attr('width',set_width).attr('height',set_height);
|
147 |
jQuery('#video_'+id+'_html5_api').attr('width',set_width).attr('height',set_height);
|
148 |
}
|
149 |
+
if ( video_vars.player_type == "iOS" ) {
|
150 |
jQuery('#video_'+id).attr('width',set_width).attr('height',set_height);
|
151 |
jQuery('#video_'+id).width(set_width).height(set_height);
|
152 |
}
|
160 |
width_remove = 0;
|
161 |
if ( jQuery('#video_'+id+'_viewcount').length ) { width_remove = jQuery('#video_'+id+'_viewcount').width()+20; }
|
162 |
jQuery('#video_'+id+'_caption').width(set_width-width_remove); //wraps long captions
|
163 |
+
|
164 |
+
}
|
165 |
+
|
166 |
+
function kgvid_strobemedia_callback(id) {
|
167 |
+
|
168 |
+
var player = document.getElementById('video_'+id);
|
169 |
+
var video_vars = kgvid_video_vars[id];
|
170 |
+
if ( player.getState() == 'buffering' || player.getState() == 'playing' ) {
|
171 |
+
kgvid_video_counter(video_vars.id, 'play');
|
172 |
+
}
|
173 |
+
|
174 |
+
if ( player.getState() == 'uninitialized' && video_vars.set_volume != "" ) {
|
175 |
+
player.setVolume(video_vars.set_volume);
|
176 |
+
}
|
177 |
}
|
178 |
|
179 |
+
function kgvid_video_counter(id, event) {
|
180 |
+
|
181 |
+
var video_vars = kgvid_video_vars[id];
|
182 |
var changed = false;
|
183 |
|
184 |
var played = jQuery('#video_'+id+'_div').data("played") || "not played";
|
185 |
if ( played == "not played" ) {
|
186 |
+
if (video_vars.countable) { //video is in the db
|
187 |
changed = true;
|
188 |
jQuery('#video_'+id+'_div').data("played", "played");
|
189 |
}
|
190 |
+
if (typeof _gaq != "undefined") { _gaq.push(["_trackEvent", "Videos", "Play Start", video_vars.title]); }
|
191 |
}
|
192 |
if ( event == "end" ) {
|
193 |
+
if (video_vars.countable) { //video is in the db
|
194 |
changed = true;
|
195 |
}
|
196 |
+
if (typeof _gaq != 'undefined') { _gaq.push(['_trackEvent', 'Videos', 'Complete View', video_vars.title]); }
|
197 |
}
|
198 |
if ( changed == true ) {
|
199 |
jQuery.post(ajax_object.ajaxurl, {
|
201 |
post_id: id,
|
202 |
video_event: event
|
203 |
}, function(data) {
|
204 |
+
if ( event == "play" ) { jQuery('#video_'+id+'_viewcount').html(data+' views'); }
|
205 |
});
|
206 |
}
|
207 |
}
|
@@ -124,12 +124,12 @@ function kgvid_enqueue_video_encode(postID) {
|
|
124 |
|
125 |
var formats = new Array("rotated", "1080", "720", "mobile", "ogg", "webm");
|
126 |
var kgvid_encode = new Object();
|
127 |
-
|
128 |
-
kgvid_encode[formats
|
129 |
-
if ( jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+formats
|
130 |
-
kgvid_encode[formats
|
131 |
}
|
132 |
-
}
|
133 |
JSON.stringify(kgvid_encode);
|
134 |
|
135 |
jQuery(encodeplaceholderid).empty();
|
@@ -332,12 +332,12 @@ function kgvid_redraw_encode_checkboxes(movieurl, postID, page) {
|
|
332 |
|
333 |
var formats = new Array("rotated", "1080", "720", "mobile", "ogg", "webm");
|
334 |
var kgvid_encode = new Object();
|
335 |
-
|
336 |
-
kgvid_encode[formats
|
337 |
-
if ( jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+formats
|
338 |
-
kgvid_encode[formats
|
339 |
}
|
340 |
-
}
|
341 |
JSON.stringify(kgvid_encode);
|
342 |
|
343 |
jQuery.post(ajaxurl, { action:"kgvid_generate_encode_checkboxes", security: kgflashmediaplayersecurity, movieurl: movieurl, post_id: postID, page: page, encodeformats: kgvid_encode }, function(data) {
|
124 |
|
125 |
var formats = new Array("rotated", "1080", "720", "mobile", "ogg", "webm");
|
126 |
var kgvid_encode = new Object();
|
127 |
+
jQuery.each(formats, function(key,formats) {
|
128 |
+
kgvid_encode[formats] = "";
|
129 |
+
if ( jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+formats).length > 0) {
|
130 |
+
kgvid_encode[formats] = document.getElementById('attachments-'+postID+'-kgflashmediaplayer-encode'+formats).checked;
|
131 |
}
|
132 |
+
});
|
133 |
JSON.stringify(kgvid_encode);
|
134 |
|
135 |
jQuery(encodeplaceholderid).empty();
|
332 |
|
333 |
var formats = new Array("rotated", "1080", "720", "mobile", "ogg", "webm");
|
334 |
var kgvid_encode = new Object();
|
335 |
+
jQuery.each(formats, function(key,formats) {
|
336 |
+
kgvid_encode[formats] = "";
|
337 |
+
if ( jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+formats).length > 0) {
|
338 |
+
kgvid_encode[formats] = document.getElementById('attachments-'+postID+'-kgflashmediaplayer-encode'+formats).checked;
|
339 |
}
|
340 |
+
});
|
341 |
JSON.stringify(kgvid_encode);
|
342 |
|
343 |
jQuery.post(ajaxurl, { action:"kgvid_generate_encode_checkboxes", security: kgflashmediaplayersecurity, movieurl: movieurl, post_id: postID, page: page, encodeformats: kgvid_encode }, function(data) {
|
@@ -1,10 +1,10 @@
|
|
1 |
=== Video Embed & Thumbnail Generator ===
|
2 |
Contributors: kylegilman
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation/
|
4 |
-
Tags: video, video gallery, html5, shortcode, thumbnail, ffmpeg, libav, embed, mobile, webm, ogg, h.264
|
5 |
Requires at least: 3.2
|
6 |
Tested up to: 3.6
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -14,9 +14,9 @@ Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted
|
|
14 |
|
15 |
= A plugin to make embedding videos, generating thumbnails, and encoding HTML5-compliant files a little bit easier. =
|
16 |
|
17 |
-
The plugin adds several fields to any video uploaded to the WordPress Media Library. Just choose a few options and click Insert into Post and you'll get a shortcode in the post editor that will embed a flexible HTML5/Flash video player with a preview image.
|
18 |
|
19 |
-
|
20 |
|
21 |
You can also use the plugin to create a popup video gallery. The shortcode uses options similar to the WordPress image gallery shortcode. In its simplest form use the code `[KGVID gallery="true"][/KGVID]` to create a gallery of all videos attached to the post. Thumbnail size and video popup size can be set on the plugin settings page.
|
22 |
|
@@ -57,11 +57,12 @@ width="720" height="404"]http://www.kylegilman.net/wp-content/uploads/2011/10/Re
|
|
57 |
* `width="xxx"`
|
58 |
* `height="xxx"`
|
59 |
* `align="left/right/center"`
|
|
|
60 |
* `volume="0.x"` pre-sets the volume for unusually loud videos. Value between 0 and 1.
|
61 |
* `controlbar="docked/floating/none"` sets the controlbar position. Video.js only responds to the "none" option.
|
62 |
* `loop="true/false"`
|
63 |
* `autoplay="true/false"`
|
64 |
-
* `watermark="http://www.example.com/image.png"`
|
65 |
* `title="Video Title"`
|
66 |
* `embedcode="html code"` changes text displayed in the embed code overlay in order to provide a custom method for embedding a video.
|
67 |
* `view_count="true/false"` turns the view count on or off.
|
@@ -119,13 +120,17 @@ The Strobe Media Playback Flash player will not play mp4/m4v/mov files that don'
|
|
119 |
|
120 |
WordPress already has <a href="http://codex.wordpress.org/Embeds">a built-in system for embedding videos from YouTube, Vimeo, Dailymotion, etc</a>. Just put the URL into your post and WordPress will automatically convert it to an embedded video using oEmbed. You don't need this plugin to do that. If you're trying to generate new thumbnails from YouTube videos, I'm not going to risk Google's wrath by providing that functionality. I'm not even sure I could figure out how to do it anyway.
|
121 |
|
122 |
-
= I'm
|
123 |
|
124 |
-
|
|
|
|
|
|
|
|
|
125 |
|
126 |
= How can I encode videos in directories protected by .htaccess passwords? =
|
127 |
|
128 |
-
Use the "Embed from URL" tab
|
129 |
|
130 |
== Screenshots ==
|
131 |
|
@@ -136,6 +141,24 @@ Use the "Embed from URL" tab. Use the format http://username:password@yourdomain
|
|
136 |
|
137 |
== Changelog ==
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
= 4.0.3 - May 01, 2013 =
|
140 |
* Fixed bug that caused video control text to display below videos on iPhones.
|
141 |
* Changed method for saving video plays to the database. Now more secure and accurate.
|
1 |
=== Video Embed & Thumbnail Generator ===
|
2 |
Contributors: kylegilman
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation/
|
4 |
+
Tags: video, video player, video gallery, html5, shortcode, thumbnail, poster, ffmpeg, libav, embed, mobile, webm, ogg, h.264, responsive
|
5 |
Requires at least: 3.2
|
6 |
Tested up to: 3.6
|
7 |
+
Stable tag: 4.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
14 |
|
15 |
= A plugin to make embedding videos, generating thumbnails, and encoding HTML5-compliant files a little bit easier. =
|
16 |
|
17 |
+
The plugin adds several fields to any video uploaded to the WordPress Media Library. Just choose a few options and click Insert into Post and you'll get a shortcode in the post editor that will embed a flexible, responsive HTML5/Flash video player with a preview image.
|
18 |
|
19 |
+
You have the option to use either the lightweight, flexible Video.js HTML5 player or Adobe's Strobe Media Playback Flash player. The HTML5 player is styled the same in all browsers and is easily customizable. The Strobe Media Playback option will default to a Flash video player if you're using a Flash-compatible file (flv, f4v, mp4, mov, or m4v). Otherwise it will use the Video.js player as a fallback. No matter which player you use, the video will resize on the fly to fit the container it's in.
|
20 |
|
21 |
You can also use the plugin to create a popup video gallery. The shortcode uses options similar to the WordPress image gallery shortcode. In its simplest form use the code `[KGVID gallery="true"][/KGVID]` to create a gallery of all videos attached to the post. Thumbnail size and video popup size can be set on the plugin settings page.
|
22 |
|
57 |
* `width="xxx"`
|
58 |
* `height="xxx"`
|
59 |
* `align="left/right/center"`
|
60 |
+
* `inline="true/false" allow other content on the same line as the video
|
61 |
* `volume="0.x"` pre-sets the volume for unusually loud videos. Value between 0 and 1.
|
62 |
* `controlbar="docked/floating/none"` sets the controlbar position. Video.js only responds to the "none" option.
|
63 |
* `loop="true/false"`
|
64 |
* `autoplay="true/false"`
|
65 |
+
* `watermark="http://www.example.com/image.png"` or `"false"` to disable.
|
66 |
* `title="Video Title"`
|
67 |
* `embedcode="html code"` changes text displayed in the embed code overlay in order to provide a custom method for embedding a video.
|
68 |
* `view_count="true/false"` turns the view count on or off.
|
120 |
|
121 |
WordPress already has <a href="http://codex.wordpress.org/Embeds">a built-in system for embedding videos from YouTube, Vimeo, Dailymotion, etc</a>. Just put the URL into your post and WordPress will automatically convert it to an embedded video using oEmbed. You don't need this plugin to do that. If you're trying to generate new thumbnails from YouTube videos, I'm not going to risk Google's wrath by providing that functionality. I'm not even sure I could figure out how to do it anyway.
|
122 |
|
123 |
+
= I'm getting an error message `FFMPEG not found at /usr/local/bin/. You can embed existing videos, but video thumbnail generation and Mobile/HTML5 video encoding is not possible without FFMPEG.` =
|
124 |
|
125 |
+
First off, don't panic.
|
126 |
+
|
127 |
+
This plugin can use FFMPEG or LIBAV to make thumbnails and create alternate video formats compatible with HTML5 videos players. Unfortunately most servers don't have FFMPEG installed and most shared hosting plans don't allow you to install FFMPEG because of the system resources it requires. You're getting this error message because you don't have FFMPEG installed in the most common directory. If you know you have FFMPEG installed on your server, you'll need to find the actual path to the program and enter it in the plugin settings field `Path to applications on server`
|
128 |
+
|
129 |
+
Many of the features of the plugin will work without FFMPEG. You can generate embed shortcodes for your videos on any host because that part of the plugin is JavaScript running in your browser. But without FFMPEG you won't be able to generate thumbnails or encode alternate formats on the server. There is no way around this. A program has to read the video files in order to generate the thumbnails, and FFMPEG is the best one I've found to do that. Dreamhost is one of the few shared hosts I know of that has FFMPEG installed and available for users.
|
130 |
|
131 |
= How can I encode videos in directories protected by .htaccess passwords? =
|
132 |
|
133 |
+
Use the "Embed from URL" tab and enter the URL in this format http://username:password@yourdomain.com/uploads/2012/01/awesomevid.mp4 in the Video URL field.
|
134 |
|
135 |
== Screenshots ==
|
136 |
|
141 |
|
142 |
== Changelog ==
|
143 |
|
144 |
+
= 4.1 May 19, 2013 =
|
145 |
+
* Updated Video.js to version 4.0 and created a new skin that approximates the old one. Older versions of Video.js had some security holes, so this update is highly recommended.
|
146 |
+
* Significantly reduced inline JavaScript generated by the plugin.
|
147 |
+
* Fixed bug that disabled Strobe Media Playback player and caused "TypeError: Error #1034" messages, particularly in Internet Explorer.
|
148 |
+
* Fixed bug that caused view count to be replaced by complete views when the end of the video is reached.
|
149 |
+
* Fixed bug that disabled video encode status monitoring in media modal popup when the same video was already in the post edit window.
|
150 |
+
* Fixed missing "document." in JavaScript when choosing thumbnails which prevented some users from properly selecting and saving generated thumbnails.
|
151 |
+
* Fixed bug that displayed WordPress thumbnail-sized poster image if no poster URL was in shortcode.
|
152 |
+
* Tweaked video resize method to support more kinds of themes.
|
153 |
+
* Added ability to turn off watermark on individual videos by entering `watermark="false"` in the shortcode.
|
154 |
+
* Added option to disable embedding on other websites.
|
155 |
+
* Added option to allow videos to be placed next to each other on the page.
|
156 |
+
* Added support for AAC library libfdk_aac.
|
157 |
+
* Adjusted embedded video and gallery CSS to account for colored backgrounds.
|
158 |
+
* Renamed "Poster image" plugin setting to "Default thumbnail"
|
159 |
+
* Removed post meta box below post editing window until I can work out a way to generate them without disabling video encode status monitoring in media modal popup when the same video is already in the post edit window.
|
160 |
+
* Replaced deprecated ereg PHP function with preg_match and used a more precise regular expression when determining the height and width of videos.
|
161 |
+
|
162 |
= 4.0.3 - May 01, 2013 =
|
163 |
* Fixed bug that caused video control text to display below videos on iPhones.
|
164 |
* Changed method for saving video plays to the database. Now more secure and accurate.
|
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Video Embed & Thumbnail Generator
|
4 |
Plugin URI: http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/
|
5 |
Description: Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted videos. Requires FFMPEG for thumbnails and encodes. <a href="options-general.php?page=video-embed-thumbnail-generator/video-embed-thumbnail-generator.php">Settings</a> | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation/">Donate</a>
|
6 |
-
Version: 4.
|
7 |
Author: Kyle Gilman
|
8 |
Author URI: http://www.kylegilman.net/
|
9 |
|
@@ -14,8 +14,7 @@ any later version.
|
|
14 |
|
15 |
This program is distributed in the hope that it will be useful,
|
16 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17 |
-
|
18 |
-
GNU General Public License for more details.
|
19 |
|
20 |
You should have received a copy of the GNU General Public License
|
21 |
along with this program; if not, write to the Free Software
|
@@ -42,7 +41,7 @@ if ( ! defined( 'ABSPATH' ) )
|
|
42 |
|
43 |
function kgvid_default_options_fn() {
|
44 |
$options = array(
|
45 |
-
"version"=>4.
|
46 |
"embed_method"=>"Video.js",
|
47 |
"template"=>false,
|
48 |
"template_gentle"=>"on",
|
@@ -67,6 +66,8 @@ function kgvid_default_options_fn() {
|
|
67 |
"overlay_title"=>"on",
|
68 |
"overlay_embedcode"=>false,
|
69 |
"view_count"=>false,
|
|
|
|
|
70 |
"align"=>"left",
|
71 |
"width"=>"640",
|
72 |
"height"=>"360",
|
@@ -412,12 +413,13 @@ function kgvid_get_video_dimensions($video = false) {
|
|
412 |
$lastline = prev($output)."<br />".$lastline;
|
413 |
$output = implode("\n", $output);
|
414 |
|
415 |
-
$
|
|
|
|
|
416 |
|
417 |
-
if (
|
418 |
-
$
|
419 |
-
$
|
420 |
-
$height = $vals [1] ? $vals [1] : null;
|
421 |
preg_match('/Duration: (.*?),/', $output, $matches);
|
422 |
$duration = $matches[1];
|
423 |
$movie_duration_hours = intval(substr($duration, -11, 2));
|
@@ -441,7 +443,7 @@ function kgvid_get_video_dimensions($video = false) {
|
|
441 |
exec ( $command, $output );
|
442 |
$output = implode("\n", $output);
|
443 |
$configuration = array();
|
444 |
-
$lib_list = array('libfaac', 'libvo_aacenc', 'libtheora', 'libvorbis', 'libvpx', 'libx264');
|
445 |
foreach ($lib_list as $lib) {
|
446 |
if ( strpos($output, $lib) !== false ) { $configuration[$lib] = "true"; }
|
447 |
else { $configuration[$lib] = "false"; }
|
@@ -518,11 +520,12 @@ function kgvid_video_embed_enqueue_scripts() {
|
|
518 |
if ( $options['embed_method'] == "Strobe Media Playback" ) {
|
519 |
wp_enqueue_script( 'swfobject' );
|
520 |
}
|
521 |
-
|
522 |
//Video.js script and skins
|
523 |
-
wp_enqueue_script( 'video-js', plugins_url("", __FILE__).'/video-js/video.js', '', '
|
524 |
-
wp_enqueue_style( 'video-js-css', plugins_url("", __FILE__).'/video-js/video-js.css', '', '
|
525 |
wp_enqueue_style( 'video-js-kg-skin', plugins_url("", __FILE__).'/video-js/kg-video-js-skin.css', '', $options['version'] );
|
|
|
526 |
//plugin-related frontend scripts and styles
|
527 |
wp_enqueue_style( 'kgvid_video_styles', plugins_url("/css/kgvid_styles.css", __FILE__), '', $options['version'] );
|
528 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
@@ -541,7 +544,7 @@ add_action('admin_enqueue_scripts', 'enqueue_kgvid_script');
|
|
541 |
|
542 |
function kgvid_video_embed_print_scripts() {
|
543 |
|
544 |
-
echo '<script type="text/javascript">
|
545 |
|
546 |
}
|
547 |
add_action('wp_head', 'kgvid_video_embed_print_scripts');
|
@@ -582,10 +585,11 @@ function KGVID_shortcode($atts, $content = ''){
|
|
582 |
'embedcode' => $options['overlay_embedcode'],
|
583 |
'view_count' => $options['view_count'],
|
584 |
'caption' => '',
|
585 |
-
'description' => ''
|
|
|
586 |
), $atts);
|
587 |
|
588 |
-
$checkbox_convert = array ( "autohide", "endOfVideoOverlaySame", "playbutton", "loop", "autoplay", "title", "embedcode", "view_count");
|
589 |
foreach ( $checkbox_convert as $query ) {
|
590 |
if ( $query_atts[$query] == "on" ) { $query_atts[$query] = "true"; }
|
591 |
if ( $query_atts[$query] == false ) { $query_atts[$query] = "false"; }
|
@@ -628,7 +632,7 @@ function KGVID_shortcode($atts, $content = ''){
|
|
628 |
$poster_id = get_post_meta($id, '_kgflashmediaplayer-poster-id', true);
|
629 |
if ( !empty($poster_id) ) {
|
630 |
//$poster_post = get_post($poster_id);
|
631 |
-
$poster_image_src = wp_get_attachment_image_src($poster_id);
|
632 |
if ( empty($query_atts['poster']) ) { $query_atts['poster'] = $poster_image_src[0]; } //if there's no poster URL set, use the database to set it automatically
|
633 |
if ( $poster_image_src[0] == $query_atts['poster'] && intval($query_atts['width']) <= get_option('medium_size_h') ) {
|
634 |
$query_atts['poster'] = kgvid_get_attachment_medium_url($poster_id);
|
@@ -708,9 +712,8 @@ function KGVID_shortcode($atts, $content = ''){
|
|
708 |
if($query_atts["backgroundcolor"] != '') { $flashvars .= ", backgroundColor:'".$query_atts["backgroundcolor"]."'"; }
|
709 |
if($query_atts["configuration"] != '') { $flashvars .= ", configuration:'".urlencode($query_atts["configuration"])."'"; }
|
710 |
if($query_atts["skin"] != '') { $flashvars .= ", skin:'".urlencode($query_atts["skin"])."'"; }
|
711 |
-
$flashvars .= ", verbose:'true', javascriptCallbackFunction:'function(id){
|
712 |
$flashvars .= "}";
|
713 |
-
|
714 |
$params = "{wmode:'opaque', allowfullscreen:'true', allowScriptAccess:'always', base:'".plugins_url("", __FILE__)."/flash/'}";
|
715 |
}
|
716 |
} //if Strobe Media Playback
|
@@ -718,13 +721,15 @@ function KGVID_shortcode($atts, $content = ''){
|
|
718 |
$sources = array();
|
719 |
foreach ($video_formats as $name => $type) {
|
720 |
if ( $name != "original" && $encodevideo_info[$name."url"] == $content ) { unset($sources['original']); }
|
721 |
-
if ( $encodevideo_info[$name."_exists"] ) { $sources[$name] =
|
722 |
}
|
723 |
}
|
724 |
|
725 |
-
if ( $query_atts['align'] != "left" ) {
|
726 |
-
$aligncode = ' style="
|
727 |
-
if ( $query_atts['align']
|
|
|
|
|
728 |
$aligncode .= '" ';
|
729 |
}
|
730 |
else { $aligncode = ""; }
|
@@ -744,14 +749,14 @@ function KGVID_shortcode($atts, $content = ''){
|
|
744 |
else { $description = ""; }
|
745 |
if ( !empty($description) ) { $code .= '<meta itemprop="description" content="'.esc_attr($description).'" />'; }
|
746 |
|
747 |
-
$code .=
|
748 |
-
if ( $query_atts["loop"] == 'true') { $code .=
|
749 |
-
if ( $query_atts["autoplay"] == 'true') { $code .=
|
750 |
-
if ( $query_atts["controlbar"] != 'none') { $code .=
|
751 |
-
$code .=
|
752 |
-
if ( $query_atts["poster"] != '' ) { $code .=
|
753 |
-
$code .=
|
754 |
-
$code .=
|
755 |
$code .= ">\n";
|
756 |
|
757 |
$code .= implode("\n", $sources); //add the <source> tags created earlier
|
@@ -787,52 +792,31 @@ function KGVID_shortcode($atts, $content = ''){
|
|
787 |
$code .= "</div>";
|
788 |
}
|
789 |
else { $kgvid_meta = false; }
|
790 |
-
if ( !empty($query_atts["watermark"]) ) { $code .= "<div style=\"display:none;\" id='video_".$div_suffix."_watermark' class='kgvid_watermark'><img src='".$query_atts["watermark"]."' alt='watermark'></div>"; } //generate watermark
|
791 |
$code .= "</div>"; //end kgvid_XXXX_wrapper div
|
792 |
|
793 |
-
|
794 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
795 |
|
796 |
-
$code .= "<script type='text/javascript'>
|
|
|
797 |
if ( $options['embed_method'] == "Video.js" || ($options['embed_method'] == "Strobe Media Playback" && !$flash_source_found) ) {
|
798 |
-
$code .= "\n\t\t\t"."
|
799 |
-
kgvid_setup_video('".$div_suffix."', '".$options['embed_method']."', '".$query_atts["volume"]."');
|
800 |
-
this.addEvent('play', function(){";
|
801 |
-
if ( $kgvid_meta ) {
|
802 |
-
$code .= "\n\t\t\t"."jQuery('#video_".$div_suffix."_div').hover(function(){ jQuery('#video_".$div_suffix."_meta').addClass('kgvid_video_meta_hover'); },function(){ jQuery('#video_".$div_suffix."_meta').removeClass('kgvid_video_meta_hover'); });
|
803 |
-
jQuery('#video_".$div_suffix."_meta').removeClass('kgvid_video_meta_hover');";
|
804 |
-
} //end if kgvid_meta
|
805 |
-
$code .= "\n\t\t\t"."setTimeout(function() { _V_('video_".$div_suffix."').controlBar.fadeOut(); }, ".$timeout.");
|
806 |
-
kgvid_video_counter('".$div_suffix."', 'play', '".$countable."', '".esc_js($stats_title)."');
|
807 |
-
});
|
808 |
-
this.addEvent('ended', function(){
|
809 |
-
kgvid_video_counter('".$div_suffix."', 'end', '".$countable."', '".esc_js($stats_title)."');
|
810 |
-
setTimeout(function() { jQuery('#video_".$div_suffix." > .vjs-loading-spinner').hide(); }, 250);
|
811 |
-
});
|
812 |
-
});";
|
813 |
}
|
814 |
if ( $options['embed_method'] == "Strobe Media Playback" && $flash_source_found ) {
|
815 |
-
$code .= "swfobject.embedSWF('".$video_swf."', 'video_".$div_suffix."', '".trim($query_atts['width'])."', '".trim($query_atts['height'])."', '".$minimum_flash."', '".plugins_url("", __FILE__)."/flash/expressInstall.swf', $flashvars, $params, '', function() {
|
816 |
-
|
817 |
-
|
818 |
-
});
|
819 |
-
jQuery('#kgvid_".$div_suffix."_wrapper').hover(
|
820 |
-
function() { jQuery('#video_".$div_suffix."_watermark').fadeOut(100); },
|
821 |
-
function() { setTimeout(function(){jQuery('#video_".$div_suffix."_watermark').fadeIn('slow');},3000); }
|
822 |
-
);";
|
823 |
-
}
|
824 |
-
$code .= "\n\t\t\t"."var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? true : false );
|
825 |
-
if (iOS) {
|
826 |
-
console.log('iOS');
|
827 |
-
if ( '".$options['embed_method']."' == 'Strobe Media Playback' ) { kgvid_setup_video('".$div_suffix."', 'Video.js', '".$query_atts["volume"]."'); }
|
828 |
-
kgvid_ios_player('".$div_suffix."');
|
829 |
-
document.getElementById('video_".$div_suffix."').addEventListener('play',function(){
|
830 |
-
jQuery('#video_".$div_suffix."_meta').removeClass('kgvid_video_meta_hover');
|
831 |
-
kgvid_video_counter('".$div_suffix."', 'play', '".$countable."', '".esc_js($stats_title)."');
|
832 |
-
});
|
833 |
-
}
|
834 |
-
kgvid_resize_video('".$div_suffix."', '".$options['embed_method']."', '".$query_atts["width"]."', '".$query_atts["height"]."');
|
835 |
-
window.addEventListener('resize', resize_".$div_suffix."=function(){ kgvid_resize_video('".$div_suffix."', '".$options['embed_method']."', '".$query_atts["width"]."', '".$query_atts["height"]."'); }, false);";
|
836 |
/* if ( $query_atts["video_security"] == "on" ) { $code .= "\n\t\t\t"."jQuery('#video_".$div_suffix."').bind('contextmenu',function() { return false; });"; } */
|
837 |
$code .= "\n\t\t"."</script>";
|
838 |
|
@@ -881,11 +865,9 @@ function KGVID_shortcode($atts, $content = ''){
|
|
881 |
|
882 |
if ( !$thumbnail_aspect ) { $thumbnail_aspect = round($video_height/$video_width, 4); } //if the thumbnail's not an attachment, set the aspect ratio to the video's
|
883 |
|
884 |
-
$play_offset_left = strval(intval($query_atts["gallery_thumb"])/2-21);
|
885 |
-
$play_offset_top = strval((intval($query_atts["gallery_thumb"])*$thumbnail_aspect/2)-30);
|
886 |
$play_scale = strval( round(intval($query_atts["gallery_thumb"])/600,2) );
|
887 |
|
888 |
-
$code .= '<div onclick="kgvid_SetVideo(\''.$div_suffix.'\', \''.site_url('/').'\', \''.$attachment->ID.'\', \''.$video_width.'\', \''.$video_height.'\');return false;" class="kgvid_video_gallery_thumb" style="width:'.$query_atts["gallery_thumb"].'px"><img src="'.$thumbnail_url.'"><div class="'.$options['js_skin'].'" ><div class="vjs-big-play-button" style="-webkit-transform: scale('.$play_scale.'); -o-transform: scale('.$play_scale.'); -ms-transform: scale('.$play_scale.'); transform: scale('.$play_scale.')
|
889 |
}
|
890 |
|
891 |
$code .= '</div>'; //end wrapper div
|
@@ -1265,9 +1247,10 @@ function kgvid_video_embed_options_init() {
|
|
1265 |
add_settings_section('kgvid_video_embed_flash_settings', 'The following options will only affect Flash playback', 'kgvid_plugin_flash_settings_section_callback', __FILE__);
|
1266 |
add_settings_section('kgvid_video_embed_plugin_settings', 'Plugin Settings', 'kgvid_plugin_settings_section_callback', __FILE__);
|
1267 |
|
1268 |
-
add_settings_field('poster', '
|
1269 |
add_settings_field('watermark', 'Watermark image:', 'kgvid_watermark_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'watermark' ) );
|
1270 |
add_settings_field('align', 'Video alignment:', 'kgvid_align_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'align' ) );
|
|
|
1271 |
add_settings_field('dimensions', 'Max embedded video dimensions:', 'kgvid_dimensions_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'width' ) );
|
1272 |
add_settings_field('gallery_dimensions', 'Max gallery video dimensions:', 'kgvid_gallery_dimensions_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'gallery_width' ) );
|
1273 |
add_settings_field('gallery_thumb', 'Gallery thumbnail width:', 'kgvid_gallery_thumb_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'gallery_thumb' ) );
|
@@ -1291,6 +1274,7 @@ function kgvid_video_embed_options_init() {
|
|
1291 |
add_settings_field('ffmpeg_options', 'FFMPEG Options:', 'kgvid_ffmpeg_options_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'video_bitrate_flag' ) );
|
1292 |
add_settings_field('moov', 'Application to fix encoded H.264 headers for streaming:', 'kgvid_moov_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'moov' ) );
|
1293 |
add_settings_field('generate_thumbs', 'Default number of thumbnails to generate:', 'kgvid_generate_thumbs_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'generate_thumbs' ) );
|
|
|
1294 |
add_settings_field('featured', 'Featured Image:', 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
|
1295 |
add_settings_field('thumb_parent', 'Attach thumbnails to:', 'kgvid_thumb_parent_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'thumb_parent' ) );
|
1296 |
add_settings_field('delete_children', 'Delete associated attachments:', 'kgvid_delete_children_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'delete_children' ) );
|
@@ -1304,6 +1288,8 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
1304 |
|
1305 |
function kgvid_plugin_playback_settings_section_callback() {
|
1306 |
$options = get_option('kgvid_video_embed_options');
|
|
|
|
|
1307 |
|
1308 |
$items = array("Strobe Media Playback", "Video.js");
|
1309 |
echo "<table class='form-table'><tbody><tr valign='middle'><th scope='row'><label for='embed_method'>Video player:</label></th><td><select onchange='kgvid_hide_plugin_settings();' id='embed_method' name='kgvid_video_embed_options[embed_method]'>";
|
@@ -1316,7 +1302,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
1316 |
$sampleheight = intval($options['height']) + 25;
|
1317 |
echo "<div class='kgvid_setting_nearvid' style='width:".$options['width']."px;'>";
|
1318 |
echo "<div style='float:left;'><input ".checked( $options['overlay_title'], "on", false )." id='overlay_title' name='kgvid_video_embed_options[overlay_title]' type='checkbox' /> <label for='overlay_title'>Overlay video title</label></div>";
|
1319 |
-
echo "<div style='float:right;'><input ".checked( $options['overlay_embedcode'], "on", false )." id='overlay_embedcode' name='kgvid_video_embed_options[overlay_embedcode]' type='checkbox' /> <label for='overlay_embedcode'>Overlay embed code</label></div>";
|
1320 |
$iframeurl = site_url('/')."?kgvid_video_embed[enable]=true&kgvid_video_embed[sample]=true";
|
1321 |
echo "<iframe id='kgvid_samplevideo' style='border:2px;' src='".$iframeurl."' scrolling='no' width='".$options['width']."' height='".$sampleheight."'></iframe>";
|
1322 |
echo "<div style='float:right;'><input ".checked( $options['view_count'], "on", false )." id='view_count' name='kgvid_video_embed_options[view_count]' type='checkbox' /> <label for='view_count'>Show view count</label></div>";
|
@@ -1345,6 +1331,11 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
1345 |
}
|
1346 |
}
|
1347 |
|
|
|
|
|
|
|
|
|
|
|
1348 |
function kgvid_dimensions_callback() {
|
1349 |
$options = get_option('kgvid_video_embed_options');
|
1350 |
echo "Width: <input class='small-text' id='width' name='kgvid_video_embed_options[width]' type='text' value='".$options['width']."' /> Height: <input class='small-text' id='height' name='kgvid_video_embed_options[height]' type='text' value='".$options['height']."' />";
|
@@ -1494,6 +1485,11 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
1494 |
echo "</div>";
|
1495 |
}
|
1496 |
|
|
|
|
|
|
|
|
|
|
|
1497 |
function kgvid_featured_callback() {
|
1498 |
$options = get_option('kgvid_video_embed_options');
|
1499 |
echo "<input ".checked( $options['featured'], "on", false )." id='featured' name='kgvid_video_embed_options[featured]' type='checkbox' /> <label for='featured'>Set generated video thumbnails as featured images.</label> <a class='kgvid_tooltip' href='javascript:void(0);'><img src='../wp-includes/images/blank.gif'><span class='kgvid_tooltip_classic'>If your theme uses the featured image meta tag, this will automatically set a video's parent post's featured image to the most recently saved thumbnail image.</span></a><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_set_all_featured();'>Set all as featured</a> <a class='kgvid_tooltip' href='javascript:void(0);'><img src='../wp-includes/images/blank.gif'><span class='kgvid_tooltip_classic'>If you've generated thumbnails with previous versions of the plugin this will set all existing thumbnails as featured images. Be careful!</span></a>";
|
@@ -1626,6 +1622,11 @@ function kgvid_update_settings() {
|
|
1626 |
}
|
1627 |
|
1628 |
}
|
|
|
|
|
|
|
|
|
|
|
1629 |
if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
|
1630 |
if ( $options !== $options_old ) { update_option('kgvid_video_embed_options', $options); }
|
1631 |
}
|
@@ -2126,7 +2127,7 @@ class kgInsertMedia {
|
|
2126 |
if ($attachment['width'] !="") { $output .= ' width="'.$attachment["width"].'"'; }
|
2127 |
if ($attachment['height'] !="") { $output .= ' height="'.$attachment["height"].'"'; }
|
2128 |
$output .= ']'.$attachment["url"].'[/KGVID]<br />';
|
2129 |
-
if ($attachment['downloadlink'] == "checked") { $output .= '<a href="'.$attachment["url"].'">Right-click or ctrl-click this link to download.</a
|
2130 |
} //if embed code is enabled
|
2131 |
|
2132 |
if ($attachment['embed'] == "Video Gallery" ) {
|
@@ -2317,12 +2318,13 @@ function kgvid_video_attachment_template() {
|
|
2317 |
global $post;
|
2318 |
global $wp_query;
|
2319 |
$options = get_option('kgvid_video_embed_options');
|
2320 |
-
|
2321 |
$kgvid_video_embed = array ( 'enable' => 'false' ); //turned off by default
|
2322 |
if ( isset($wp_query->query_vars['kgvid_video_embed']) ) { $kgvid_video_embed = $wp_query->query_vars['kgvid_video_embed']; }
|
2323 |
if ( $options['template'] == "old" ) { $kgvid_video_embed['enable'] = 'true'; } //regardless of any query settings, if we're using the old method it's turned on
|
2324 |
if ( (!is_array($kgvid_video_embed) && $kgvid_video_embed == "true") ) { $kgvid_video_embed = array ( 'enable' => 'true' ); } //maintain backwards compatibility
|
2325 |
|
|
|
2326 |
|
2327 |
if ( array_key_exists('enable', $kgvid_video_embed) && $kgvid_video_embed['enable'] == 'true' && (strpos($post->post_mime_type,"video") !== false || array_key_exists('sample', $kgvid_video_embed)) ) {
|
2328 |
|
@@ -2330,13 +2332,13 @@ function kgvid_video_attachment_template() {
|
|
2330 |
|
2331 |
$shortcode = kgvid_generate_attachment_shortcode($kgvid_video_embed);
|
2332 |
|
2333 |
-
echo '<html><head>';
|
2334 |
echo (wp_head());
|
2335 |
-
echo '<style
|
2336 |
-
|
2337 |
-
|
2338 |
-
echo '
|
2339 |
-
echo '
|
2340 |
echo (do_shortcode( $shortcode ));
|
2341 |
echo '</body></html>';
|
2342 |
exit;
|
@@ -2494,7 +2496,7 @@ function kgvid_make_thumbs($postID, $movieurl, $numberofthumbs, $i, $iincreaser,
|
|
2494 |
|
2495 |
$field_id = kgvid_backwards_compatible($postID);
|
2496 |
|
2497 |
-
$thumbnaildisplaycode = '<div class="kgvid_thumbnail_select" name="attachments['.$postID.'][thumb'.$i.']" id="attachments-'.$postID.'-thumb'.$i.'"><label for="kgflashmedia-'.$postID.'-thumbradio'.$i.'"><img src="'.$thumbnailurl.'?'.rand().'" width="200" height="'.$thumbnailheight.'" class="kgvid_thumbnail"></label><br /><input type="radio" name="attachments['.$postID.'][thumbradio'.$i.']" id="kgflashmedia-'.$postID.'-thumbradio'.$i.'" value="'.str_replace('/thumb_tmp/', '/', $thumbnailurl).'" onchange="getElementById(\''.$field_id['poster'].'\').value = this.value; getElementById(\''.$field_id['thumbtime'].'\').value = \''. $movieoffset_display .'\'; getElementById(\'attachments-'. $postID .'-numberofthumbs\').value =\'1\';"></div>';
|
2498 |
|
2499 |
$i++;
|
2500 |
|
@@ -2737,7 +2739,7 @@ function kgvid_encode_videos() {
|
|
2737 |
$audio_bitrate_flag = "ab";
|
2738 |
}
|
2739 |
|
2740 |
-
if ( ($movie_info['configuration']['libfaac'] == "true" || $movie_info['configuration']['libvo_aacenc'] == "true" ) && $movie_info['configuration']['libx264'] == "true" ) {
|
2741 |
foreach( $video_formats as $format => $format_stats ) {
|
2742 |
if ( $queued_format == $format && $format_stats['type'] == "h264" ) {
|
2743 |
if ( ! $encodevideo_info[$format.'_exists'] || ($encodevideo_info['sameserver'] && filesize($encodevideo_info[$format.'filepath']) < 24576) ) {
|
@@ -3515,7 +3517,7 @@ function kgvid_singleurl_meta_box($postType) {
|
|
3515 |
);
|
3516 |
}
|
3517 |
}
|
3518 |
-
add_action( 'add_meta_boxes', 'kgvid_singleurl_meta_box' );
|
3519 |
|
3520 |
function kgvid_singleurl_inner_custom_box($post) {
|
3521 |
|
3 |
Plugin Name: Video Embed & Thumbnail Generator
|
4 |
Plugin URI: http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/
|
5 |
Description: Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted videos. Requires FFMPEG for thumbnails and encodes. <a href="options-general.php?page=video-embed-thumbnail-generator/video-embed-thumbnail-generator.php">Settings</a> | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation/">Donate</a>
|
6 |
+
Version: 4.1
|
7 |
Author: Kyle Gilman
|
8 |
Author URI: http://www.kylegilman.net/
|
9 |
|
14 |
|
15 |
This program is distributed in the hope that it will be useful,
|
16 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17 |
+
GNU General Public License for more details.
|
|
|
18 |
|
19 |
You should have received a copy of the GNU General Public License
|
20 |
along with this program; if not, write to the Free Software
|
41 |
|
42 |
function kgvid_default_options_fn() {
|
43 |
$options = array(
|
44 |
+
"version"=>4.1,
|
45 |
"embed_method"=>"Video.js",
|
46 |
"template"=>false,
|
47 |
"template_gentle"=>"on",
|
66 |
"overlay_title"=>"on",
|
67 |
"overlay_embedcode"=>false,
|
68 |
"view_count"=>false,
|
69 |
+
"embeddable"=>"on",
|
70 |
+
"inline"=>false,
|
71 |
"align"=>"left",
|
72 |
"width"=>"640",
|
73 |
"height"=>"360",
|
413 |
$lastline = prev($output)."<br />".$lastline;
|
414 |
$output = implode("\n", $output);
|
415 |
|
416 |
+
$regex = "/Video: ([^,]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/";
|
417 |
+
if (preg_match($regex, $output, $regs)) { $result = $regs[0]; }
|
418 |
+
else { $result = ""; }
|
419 |
|
420 |
+
if ( !empty($result) ) {
|
421 |
+
$width = $regs [3] ? $regs [3] : null;
|
422 |
+
$height = $regs [4] ? $regs [4] : null;
|
|
|
423 |
preg_match('/Duration: (.*?),/', $output, $matches);
|
424 |
$duration = $matches[1];
|
425 |
$movie_duration_hours = intval(substr($duration, -11, 2));
|
443 |
exec ( $command, $output );
|
444 |
$output = implode("\n", $output);
|
445 |
$configuration = array();
|
446 |
+
$lib_list = array('libfaac', 'libvo_aacenc', 'libfdk_aac', 'libtheora', 'libvorbis', 'libvpx', 'libx264');
|
447 |
foreach ($lib_list as $lib) {
|
448 |
if ( strpos($output, $lib) !== false ) { $configuration[$lib] = "true"; }
|
449 |
else { $configuration[$lib] = "false"; }
|
520 |
if ( $options['embed_method'] == "Strobe Media Playback" ) {
|
521 |
wp_enqueue_script( 'swfobject' );
|
522 |
}
|
523 |
+
|
524 |
//Video.js script and skins
|
525 |
+
wp_enqueue_script( 'video-js', plugins_url("", __FILE__).'/video-js/video.js', '', '4.0.0' );
|
526 |
+
wp_enqueue_style( 'video-js-css', plugins_url("", __FILE__).'/video-js/video-js.css', '', '4.0.0' );
|
527 |
wp_enqueue_style( 'video-js-kg-skin', plugins_url("", __FILE__).'/video-js/kg-video-js-skin.css', '', $options['version'] );
|
528 |
+
|
529 |
//plugin-related frontend scripts and styles
|
530 |
wp_enqueue_style( 'kgvid_video_styles', plugins_url("/css/kgvid_styles.css", __FILE__), '', $options['version'] );
|
531 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
544 |
|
545 |
function kgvid_video_embed_print_scripts() {
|
546 |
|
547 |
+
echo '<script type="text/javascript">videojs.options.flash.swf = "'.plugins_url("", __FILE__).'/video-js/video-js.swf"</script>'."\n";
|
548 |
|
549 |
}
|
550 |
add_action('wp_head', 'kgvid_video_embed_print_scripts');
|
585 |
'embedcode' => $options['overlay_embedcode'],
|
586 |
'view_count' => $options['view_count'],
|
587 |
'caption' => '',
|
588 |
+
'description' => '',
|
589 |
+
'inline' => $options['inline']
|
590 |
), $atts);
|
591 |
|
592 |
+
$checkbox_convert = array ( "autohide", "endOfVideoOverlaySame", "playbutton", "loop", "autoplay", "title", "embedcode", "view_count", "inline");
|
593 |
foreach ( $checkbox_convert as $query ) {
|
594 |
if ( $query_atts[$query] == "on" ) { $query_atts[$query] = "true"; }
|
595 |
if ( $query_atts[$query] == false ) { $query_atts[$query] = "false"; }
|
632 |
$poster_id = get_post_meta($id, '_kgflashmediaplayer-poster-id', true);
|
633 |
if ( !empty($poster_id) ) {
|
634 |
//$poster_post = get_post($poster_id);
|
635 |
+
$poster_image_src = wp_get_attachment_image_src($poster_id, 'full');
|
636 |
if ( empty($query_atts['poster']) ) { $query_atts['poster'] = $poster_image_src[0]; } //if there's no poster URL set, use the database to set it automatically
|
637 |
if ( $poster_image_src[0] == $query_atts['poster'] && intval($query_atts['width']) <= get_option('medium_size_h') ) {
|
638 |
$query_atts['poster'] = kgvid_get_attachment_medium_url($poster_id);
|
712 |
if($query_atts["backgroundcolor"] != '') { $flashvars .= ", backgroundColor:'".$query_atts["backgroundcolor"]."'"; }
|
713 |
if($query_atts["configuration"] != '') { $flashvars .= ", configuration:'".urlencode($query_atts["configuration"])."'"; }
|
714 |
if($query_atts["skin"] != '') { $flashvars .= ", skin:'".urlencode($query_atts["skin"])."'"; }
|
715 |
+
$flashvars .= ", verbose:'true', javascriptCallbackFunction:'function(id){kgvid_strobemedia_callback(".$div_suffix.");}'"; //this is necessary to turn on the js API
|
716 |
$flashvars .= "}";
|
|
|
717 |
$params = "{wmode:'opaque', allowfullscreen:'true', allowScriptAccess:'always', base:'".plugins_url("", __FILE__)."/flash/'}";
|
718 |
}
|
719 |
} //if Strobe Media Playback
|
721 |
$sources = array();
|
722 |
foreach ($video_formats as $name => $type) {
|
723 |
if ( $name != "original" && $encodevideo_info[$name."url"] == $content ) { unset($sources['original']); }
|
724 |
+
if ( $encodevideo_info[$name."_exists"] ) { $sources[$name] = '<source src="'.$encodevideo_info[$name."url"].'" type="video/'.$type.'">';
|
725 |
}
|
726 |
}
|
727 |
|
728 |
+
if ( $query_atts['align'] != "left" || $query_atts['inline'] == "true" ) {
|
729 |
+
$aligncode = ' style="';
|
730 |
+
if ( $query_atts['align'] != "left" ) { $aligncode .= 'margin-left:auto; '; }
|
731 |
+
if ( $query_atts['align'] == "center" ) { $aligncode .= ' margin-right:auto;'; }
|
732 |
+
if ( $query_atts['inline'] == "true" ) { $aligncode .= 'display:inline-block;'; }
|
733 |
$aligncode .= '" ';
|
734 |
}
|
735 |
else { $aligncode = ""; }
|
749 |
else { $description = ""; }
|
750 |
if ( !empty($description) ) { $code .= '<meta itemprop="description" content="'.esc_attr($description).'" />'; }
|
751 |
|
752 |
+
$code .= '<video id="video_'.$div_suffix.'" ';
|
753 |
+
if ( $query_atts["loop"] == 'true') { $code .= 'loop '; }
|
754 |
+
if ( $query_atts["autoplay"] == 'true') { $code .= 'autoplay '; }
|
755 |
+
if ( $query_atts["controlbar"] != 'none') { $code .= 'controls '; }
|
756 |
+
$code .= 'preload="metadata" ';
|
757 |
+
if ( $query_atts["poster"] != '' ) { $code .= 'poster="'.$query_atts["poster"].'" '; }
|
758 |
+
$code .= 'width="'.$query_atts["width"].'" height="'.$query_atts["height"].'"';
|
759 |
+
$code .= ' class="video-js '.$options['js_skin'].'" data-setup=\'{}\'';
|
760 |
$code .= ">\n";
|
761 |
|
762 |
$code .= implode("\n", $sources); //add the <source> tags created earlier
|
792 |
$code .= "</div>";
|
793 |
}
|
794 |
else { $kgvid_meta = false; }
|
795 |
+
if ( !empty($query_atts["watermark"]) && $query_atts["watermark"] != "false" ) { $code .= "<div style=\"display:none;\" id='video_".$div_suffix."_watermark' class='kgvid_watermark'><img src='".$query_atts["watermark"]."' alt='watermark'></div>"; } //generate watermark
|
796 |
$code .= "</div>"; //end kgvid_XXXX_wrapper div
|
797 |
|
798 |
+
$video_variables = array(
|
799 |
+
'id' => $div_suffix,
|
800 |
+
'player_type' => $options['embed_method'],
|
801 |
+
'width' => $query_atts['width'],
|
802 |
+
'height' => $query_atts['height'],
|
803 |
+
'countable' => $countable,
|
804 |
+
'title' => esc_js($stats_title),
|
805 |
+
'autoplay' => $query_atts['autoplay'],
|
806 |
+
'set_volume' => $query_atts["volume"],
|
807 |
+
'meta' => $kgvid_meta
|
808 |
+
);
|
809 |
+
$json_video_variables = json_encode( $video_variables, JSON_FORCE_OBJECT );
|
810 |
|
811 |
+
$code .= "\n\t\t"."<script type='text/javascript'>
|
812 |
+
kgvid_video_vars['".$div_suffix."'] = jQuery.parseJSON ( '".$json_video_variables."' );";
|
813 |
if ( $options['embed_method'] == "Video.js" || ($options['embed_method'] == "Strobe Media Playback" && !$flash_source_found) ) {
|
814 |
+
$code .= "\n\t\t\t"."videojs('video_".$div_suffix."').ready(function(){ kgvid_setup_video('".$div_suffix."'); });";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
815 |
}
|
816 |
if ( $options['embed_method'] == "Strobe Media Playback" && $flash_source_found ) {
|
817 |
+
$code .= "\n\t\t\t"."swfobject.embedSWF('".$video_swf."', 'video_".$div_suffix."', '".trim($query_atts['width'])."', '".trim($query_atts['height'])."', '".$minimum_flash."', '".plugins_url("", __FILE__)."/flash/expressInstall.swf', $flashvars, $params, '', function(e) { kgvid_setup_video(".$div_suffix."); });";
|
818 |
+
} //if Strobe Media
|
819 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
/* if ( $query_atts["video_security"] == "on" ) { $code .= "\n\t\t\t"."jQuery('#video_".$div_suffix."').bind('contextmenu',function() { return false; });"; } */
|
821 |
$code .= "\n\t\t"."</script>";
|
822 |
|
865 |
|
866 |
if ( !$thumbnail_aspect ) { $thumbnail_aspect = round($video_height/$video_width, 4); } //if the thumbnail's not an attachment, set the aspect ratio to the video's
|
867 |
|
|
|
|
|
868 |
$play_scale = strval( round(intval($query_atts["gallery_thumb"])/600,2) );
|
869 |
|
870 |
+
$code .= '<div onclick="kgvid_SetVideo(\''.$div_suffix.'\', \''.site_url('/').'\', \''.$attachment->ID.'\', \''.$video_width.'\', \''.$video_height.'\');return false;" class="kgvid_video_gallery_thumb" style="width:'.$query_atts["gallery_thumb"].'px"><img src="'.$thumbnail_url.'"><div class="'.$options['js_skin'].'" ><div class="vjs-big-play-button" style="-webkit-transform: scale('.$play_scale.') translateY(-15px); -o-transform: scale('.$play_scale.') translateY(-15px); -ms-transform: scale('.$play_scale.') translateY(-15px); transform: scale('.$play_scale.') translateY(-15px);"><span></span></div></div><div class="titlebackground"><div class="videotitle">'.$attachment->post_title.'</div></div></div>'."\n\t\t\t";
|
871 |
}
|
872 |
|
873 |
$code .= '</div>'; //end wrapper div
|
1247 |
add_settings_section('kgvid_video_embed_flash_settings', 'The following options will only affect Flash playback', 'kgvid_plugin_flash_settings_section_callback', __FILE__);
|
1248 |
add_settings_section('kgvid_video_embed_plugin_settings', 'Plugin Settings', 'kgvid_plugin_settings_section_callback', __FILE__);
|
1249 |
|
1250 |
+
add_settings_field('poster', 'Default thumbnail:', 'kgvid_poster_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'poster' ) );
|
1251 |
add_settings_field('watermark', 'Watermark image:', 'kgvid_watermark_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'watermark' ) );
|
1252 |
add_settings_field('align', 'Video alignment:', 'kgvid_align_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'align' ) );
|
1253 |
+
add_settings_field('inline', 'Inline videos:', 'kgvid_inline_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'inline' ) );
|
1254 |
add_settings_field('dimensions', 'Max embedded video dimensions:', 'kgvid_dimensions_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'width' ) );
|
1255 |
add_settings_field('gallery_dimensions', 'Max gallery video dimensions:', 'kgvid_gallery_dimensions_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'gallery_width' ) );
|
1256 |
add_settings_field('gallery_thumb', 'Gallery thumbnail width:', 'kgvid_gallery_thumb_callback', __FILE__, 'kgvid_video_embed_playback_settings', array( 'label_for' => 'gallery_thumb' ) );
|
1274 |
add_settings_field('ffmpeg_options', 'FFMPEG Options:', 'kgvid_ffmpeg_options_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'video_bitrate_flag' ) );
|
1275 |
add_settings_field('moov', 'Application to fix encoded H.264 headers for streaming:', 'kgvid_moov_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'moov' ) );
|
1276 |
add_settings_field('generate_thumbs', 'Default number of thumbnails to generate:', 'kgvid_generate_thumbs_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'generate_thumbs' ) );
|
1277 |
+
add_settings_field('embeddable', 'Allow embedding:', 'kgvid_embeddable_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'embeddable' ) );
|
1278 |
add_settings_field('featured', 'Featured Image:', 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
|
1279 |
add_settings_field('thumb_parent', 'Attach thumbnails to:', 'kgvid_thumb_parent_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'thumb_parent' ) );
|
1280 |
add_settings_field('delete_children', 'Delete associated attachments:', 'kgvid_delete_children_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'delete_children' ) );
|
1288 |
|
1289 |
function kgvid_plugin_playback_settings_section_callback() {
|
1290 |
$options = get_option('kgvid_video_embed_options');
|
1291 |
+
if ( $options['embeddable'] == "false" ) { $embed_disabled = "disabled"; }
|
1292 |
+
else { $embed_disabled = ""; }
|
1293 |
|
1294 |
$items = array("Strobe Media Playback", "Video.js");
|
1295 |
echo "<table class='form-table'><tbody><tr valign='middle'><th scope='row'><label for='embed_method'>Video player:</label></th><td><select onchange='kgvid_hide_plugin_settings();' id='embed_method' name='kgvid_video_embed_options[embed_method]'>";
|
1302 |
$sampleheight = intval($options['height']) + 25;
|
1303 |
echo "<div class='kgvid_setting_nearvid' style='width:".$options['width']."px;'>";
|
1304 |
echo "<div style='float:left;'><input ".checked( $options['overlay_title'], "on", false )." id='overlay_title' name='kgvid_video_embed_options[overlay_title]' type='checkbox' /> <label for='overlay_title'>Overlay video title</label></div>";
|
1305 |
+
echo "<div style='float:right;'><input ".checked( $options['overlay_embedcode'], "on", false )." id='overlay_embedcode' name='kgvid_video_embed_options[overlay_embedcode]' type='checkbox' ".$embed_disabled."/> <label for='overlay_embedcode'>Overlay embed code</label></div>";
|
1306 |
$iframeurl = site_url('/')."?kgvid_video_embed[enable]=true&kgvid_video_embed[sample]=true";
|
1307 |
echo "<iframe id='kgvid_samplevideo' style='border:2px;' src='".$iframeurl."' scrolling='no' width='".$options['width']."' height='".$sampleheight."'></iframe>";
|
1308 |
echo "<div style='float:right;'><input ".checked( $options['view_count'], "on", false )." id='view_count' name='kgvid_video_embed_options[view_count]' type='checkbox' /> <label for='view_count'>Show view count</label></div>";
|
1331 |
}
|
1332 |
}
|
1333 |
|
1334 |
+
function kgvid_inline_callback() {
|
1335 |
+
$options = get_option('kgvid_video_embed_options');
|
1336 |
+
echo "<input ".checked( $options['inline'], "on", false )." id='inline' name='kgvid_video_embed_options[inline]' type='checkbox' /> <label for='inline'>Allow other content on the same line as the video.</label>";
|
1337 |
+
}
|
1338 |
+
|
1339 |
function kgvid_dimensions_callback() {
|
1340 |
$options = get_option('kgvid_video_embed_options');
|
1341 |
echo "Width: <input class='small-text' id='width' name='kgvid_video_embed_options[width]' type='text' value='".$options['width']."' /> Height: <input class='small-text' id='height' name='kgvid_video_embed_options[height]' type='text' value='".$options['height']."' />";
|
1485 |
echo "</div>";
|
1486 |
}
|
1487 |
|
1488 |
+
function kgvid_embeddable_callback() {
|
1489 |
+
$options = get_option('kgvid_video_embed_options');
|
1490 |
+
echo "<input ".checked( $options['embeddable'], "on", false )." id='embeddable' name='kgvid_video_embed_options[embeddable]' type='checkbox' onclick='var kgvid_overlay_embedcode = document.getElementById(\"overlay_embedcode\"); if (this.checked == false) { kgvid_overlay_embedcode.checked=false; kgvid_overlay_embedcode.disabled=true; kgvid_save_plugin_settings(kgvid_overlay_embedcode); } else { kgvid_overlay_embedcode.disabled=false; }' /> <label for='embeddable'>Allow users to embed your videos on other sites.</label>";
|
1491 |
+
}
|
1492 |
+
|
1493 |
function kgvid_featured_callback() {
|
1494 |
$options = get_option('kgvid_video_embed_options');
|
1495 |
echo "<input ".checked( $options['featured'], "on", false )." id='featured' name='kgvid_video_embed_options[featured]' type='checkbox' /> <label for='featured'>Set generated video thumbnails as featured images.</label> <a class='kgvid_tooltip' href='javascript:void(0);'><img src='../wp-includes/images/blank.gif'><span class='kgvid_tooltip_classic'>If your theme uses the featured image meta tag, this will automatically set a video's parent post's featured image to the most recently saved thumbnail image.</span></a><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_set_all_featured();'>Set all as featured</a> <a class='kgvid_tooltip' href='javascript:void(0);'><img src='../wp-includes/images/blank.gif'><span class='kgvid_tooltip_classic'>If you've generated thumbnails with previous versions of the plugin this will set all existing thumbnails as featured images. Be careful!</span></a>";
|
1622 |
}
|
1623 |
|
1624 |
}
|
1625 |
+
if ( $options['version'] < 4.1 ) {
|
1626 |
+
$options['version'] = 4.1;
|
1627 |
+
$options['embeddable'] = "on";
|
1628 |
+
$options['inline'] = "on";
|
1629 |
+
}
|
1630 |
if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
|
1631 |
if ( $options !== $options_old ) { update_option('kgvid_video_embed_options', $options); }
|
1632 |
}
|
2127 |
if ($attachment['width'] !="") { $output .= ' width="'.$attachment["width"].'"'; }
|
2128 |
if ($attachment['height'] !="") { $output .= ' height="'.$attachment["height"].'"'; }
|
2129 |
$output .= ']'.$attachment["url"].'[/KGVID]<br />';
|
2130 |
+
if ($attachment['downloadlink'] == "checked") { $output .= '<p><a href="'.$attachment["url"].'">Right-click or ctrl-click this link to download.</a></p>'; }
|
2131 |
} //if embed code is enabled
|
2132 |
|
2133 |
if ($attachment['embed'] == "Video Gallery" ) {
|
2318 |
global $post;
|
2319 |
global $wp_query;
|
2320 |
$options = get_option('kgvid_video_embed_options');
|
2321 |
+
|
2322 |
$kgvid_video_embed = array ( 'enable' => 'false' ); //turned off by default
|
2323 |
if ( isset($wp_query->query_vars['kgvid_video_embed']) ) { $kgvid_video_embed = $wp_query->query_vars['kgvid_video_embed']; }
|
2324 |
if ( $options['template'] == "old" ) { $kgvid_video_embed['enable'] = 'true'; } //regardless of any query settings, if we're using the old method it's turned on
|
2325 |
if ( (!is_array($kgvid_video_embed) && $kgvid_video_embed == "true") ) { $kgvid_video_embed = array ( 'enable' => 'true' ); } //maintain backwards compatibility
|
2326 |
|
2327 |
+
if ( $options['embeddable'] == 'false' && !array_key_exists('sample', $kgvid_video_embed) && !array_key_exists('gallery', $kgvid_video_embed) ) { $kgvid_video_embed['enable'] = 'false'; }
|
2328 |
|
2329 |
if ( array_key_exists('enable', $kgvid_video_embed) && $kgvid_video_embed['enable'] == 'true' && (strpos($post->post_mime_type,"video") !== false || array_key_exists('sample', $kgvid_video_embed)) ) {
|
2330 |
|
2332 |
|
2333 |
$shortcode = kgvid_generate_attachment_shortcode($kgvid_video_embed);
|
2334 |
|
2335 |
+
echo '<html style="background-color:transparent;"><head>';
|
2336 |
echo (wp_head());
|
2337 |
+
echo '<style>.kgvid_wrapper { margin:0; }</style>';
|
2338 |
+
echo '</head><body class="content" style="margin:0px; font-family: sans-serif; padding:0px; border:none;';
|
2339 |
+
if ( array_key_exists('gallery', $kgvid_video_embed) ) { echo 'background-color:black; '; }
|
2340 |
+
else { echo 'background-color:transparent; '; }
|
2341 |
+
echo '">';
|
2342 |
echo (do_shortcode( $shortcode ));
|
2343 |
echo '</body></html>';
|
2344 |
exit;
|
2496 |
|
2497 |
$field_id = kgvid_backwards_compatible($postID);
|
2498 |
|
2499 |
+
$thumbnaildisplaycode = '<div class="kgvid_thumbnail_select" name="attachments['.$postID.'][thumb'.$i.']" id="attachments-'.$postID.'-thumb'.$i.'"><label for="kgflashmedia-'.$postID.'-thumbradio'.$i.'"><img src="'.$thumbnailurl.'?'.rand().'" width="200" height="'.$thumbnailheight.'" class="kgvid_thumbnail"></label><br /><input type="radio" name="attachments['.$postID.'][thumbradio'.$i.']" id="kgflashmedia-'.$postID.'-thumbradio'.$i.'" value="'.str_replace('/thumb_tmp/', '/', $thumbnailurl).'" onchange="document.getElementById(\''.$field_id['poster'].'\').value = this.value; document.getElementById(\''.$field_id['thumbtime'].'\').value = \''. $movieoffset_display .'\'; document.getElementById(\'attachments-'. $postID .'-numberofthumbs\').value =\'1\';"></div>';
|
2500 |
|
2501 |
$i++;
|
2502 |
|
2739 |
$audio_bitrate_flag = "ab";
|
2740 |
}
|
2741 |
|
2742 |
+
if ( ($movie_info['configuration']['libfaac'] == "true" || $movie_info['configuration']['libvo_aacenc'] == "true" || $movie_info['configuration']['libfdk_aac'] == "true" ) && $movie_info['configuration']['libx264'] == "true" ) {
|
2743 |
foreach( $video_formats as $format => $format_stats ) {
|
2744 |
if ( $queued_format == $format && $format_stats['type'] == "h264" ) {
|
2745 |
if ( ! $encodevideo_info[$format.'_exists'] || ($encodevideo_info['sameserver'] && filesize($encodevideo_info[$format.'filepath']) < 24576) ) {
|
3517 |
);
|
3518 |
}
|
3519 |
}
|
3520 |
+
//add_action( 'add_meta_boxes', 'kgvid_singleurl_meta_box' );
|
3521 |
|
3522 |
function kgvid_singleurl_inner_custom_box($post) {
|
3523 |
|
Binary file
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>
|
5 |
+
This is a custom SVG font generated by IcoMoon.
|
6 |
+
<iconset grid="16"></iconset>
|
7 |
+
</metadata>
|
8 |
+
<defs>
|
9 |
+
<font id="VideoJS" horiz-adv-x="512" >
|
10 |
+
<font-face units-per-em="512" ascent="480" descent="-32" />
|
11 |
+
<missing-glyph horiz-adv-x="512" />
|
12 |
+
<glyph unicode="" d="M 512.00,480.00 L 512.00,272.00 L 432.00,352.00 L 336.00,256.00 L 288.00,304.00 L 384.00,400.00 L 304.00,480.00 ZM 224.00,144.00 L 128.00,48.00 L 208.00-32.00 L 0.00-32.00 L 0.00,176.00 L 80.00,96.00 L 176.00,192.00 Z" />
|
13 |
+
<glyph unicode="" d="M 96.00,416.00L 416.00,224.00L 96.00,32.00 z" />
|
14 |
+
<glyph unicode="" d="M 64.00,416.00L 224.00,416.00L 224.00,32.00L 64.00,32.00zM 288.00,416.00L 448.00,416.00L 448.00,32.00L 288.00,32.00z" />
|
15 |
+
<glyph unicode="" d="M 200.666,440.666 C 213.50,453.50 224.00,449.15 224.00,431.00 L 224.00,17.00 C 224.00-1.15 213.50-5.499 200.666,7.335 L 80.00,128.00 L 0.00,128.00 L 0.00,320.00 L 80.00,320.00 L 200.666,440.666 Z" />
|
16 |
+
<glyph unicode="" d="M 274.51,109.49c-6.143,0.00-12.284,2.343-16.971,7.029c-9.373,9.373-9.373,24.568,0.00,33.941
|
17 |
+
c 40.55,40.55, 40.55,106.529,0.00,147.078c-9.373,9.373-9.373,24.569,0.00,33.941c 9.373,9.372, 24.568,9.372, 33.941,0.00
|
18 |
+
c 59.265-59.265, 59.265-155.696,0.00-214.961C 286.794,111.833, 280.652,109.49, 274.51,109.49zM 200.666,440.666 C 213.50,453.50 224.00,449.15 224.00,431.00 L 224.00,17.00 C 224.00-1.15 213.50-5.499 200.666,7.335 L 80.00,128.00 L 0.00,128.00 L 0.00,320.00 L 80.00,320.00 L 200.666,440.666 Z" />
|
19 |
+
<glyph unicode="" d="M 359.765,64.235c-6.143,0.00-12.284,2.343-16.971,7.029c-9.372,9.372-9.372,24.568,0.00,33.941
|
20 |
+
c 65.503,65.503, 65.503,172.085,0.00,237.588c-9.372,9.373-9.372,24.569,0.00,33.941c 9.372,9.371, 24.569,9.372, 33.941,0.00
|
21 |
+
C 417.532,335.938, 440.00,281.696, 440.00,224.00c0.00-57.695-22.468-111.938-63.265-152.735C 372.049,66.578, 365.907,64.235, 359.765,64.235zM 274.51,109.49c-6.143,0.00-12.284,2.343-16.971,7.029c-9.373,9.373-9.373,24.568,0.00,33.941
|
22 |
+
c 40.55,40.55, 40.55,106.529,0.00,147.078c-9.373,9.373-9.373,24.569,0.00,33.941c 9.373,9.372, 24.568,9.372, 33.941,0.00
|
23 |
+
c 59.265-59.265, 59.265-155.696,0.00-214.961C 286.794,111.833, 280.652,109.49, 274.51,109.49zM 200.666,440.666 C 213.50,453.50 224.00,449.15 224.00,431.00 L 224.00,17.00 C 224.00-1.15 213.50-5.499 200.666,7.335 L 80.00,128.00 L 0.00,128.00 L 0.00,320.00 L 80.00,320.00 L 200.666,440.666 Z" />
|
24 |
+
<glyph unicode="" d="M 445.02,18.98c-6.143,0.00-12.284,2.343-16.971,7.029c-9.372,9.373-9.372,24.568,0.00,33.941
|
25 |
+
C 471.868,103.771, 496.001,162.03, 496.001,224.00c0.00,61.969-24.133,120.229-67.952,164.049c-9.372,9.373-9.372,24.569,0.00,33.941
|
26 |
+
c 9.372,9.372, 24.569,9.372, 33.941,0.00c 52.885-52.886, 82.011-123.20, 82.011-197.99c0.00-74.791-29.126-145.104-82.011-197.99
|
27 |
+
C 457.304,21.323, 451.162,18.98, 445.02,18.98zM 359.765,64.235c-6.143,0.00-12.284,2.343-16.971,7.029c-9.372,9.372-9.372,24.568,0.00,33.941
|
28 |
+
c 65.503,65.503, 65.503,172.085,0.00,237.588c-9.372,9.373-9.372,24.569,0.00,33.941c 9.372,9.371, 24.569,9.372, 33.941,0.00
|
29 |
+
C 417.532,335.938, 440.00,281.696, 440.00,224.00c0.00-57.695-22.468-111.938-63.265-152.735C 372.049,66.578, 365.907,64.235, 359.765,64.235zM 274.51,109.49c-6.143,0.00-12.284,2.343-16.971,7.029c-9.373,9.373-9.373,24.568,0.00,33.941
|
30 |
+
c 40.55,40.55, 40.55,106.529,0.00,147.078c-9.373,9.373-9.373,24.569,0.00,33.941c 9.373,9.372, 24.568,9.372, 33.941,0.00
|
31 |
+
c 59.265-59.265, 59.265-155.696,0.00-214.961C 286.794,111.833, 280.652,109.49, 274.51,109.49zM 200.666,440.666 C 213.50,453.50 224.00,449.15 224.00,431.00 L 224.00,17.00 C 224.00-1.15 213.50-5.499 200.666,7.335 L 80.00,128.00 L 0.00,128.00 L 0.00,320.00 L 80.00,320.00 L 200.666,440.666 Z" horiz-adv-x="544" />
|
32 |
+
<glyph unicode="" d="M 256.00,480.00L 96.00,224.00L 256.00-32.00L 416.00,224.00 z" />
|
33 |
+
<glyph unicode="" d="M 0.00,480.00 L 687.158,480.00 L 687.158-35.207 L 0.00-35.207 L 0.00,480.00 z M 622.731,224.638 C 621.878,314.664 618.46,353.922 597.131,381.656 C 593.291,387.629 586.038,391.042 580.065,395.304 C 559.158,410.669 460.593,416.211 346.247,416.211 C 231.896,416.211 128.642,410.669 108.162,395.304 C 101.762,391.042 94.504,387.629 90.242,381.656 C 69.331,353.922 66.349,314.664 65.069,224.638 C 66.349,134.607 69.331,95.353 90.242,67.62 C 94.504,61.22 101.762,58.233 108.162,53.967 C 128.642,38.18 231.896,33.06 346.247,32.207 C 460.593,33.06 559.158,38.18 580.065,53.967 C 586.038,58.233 593.291,61.22 597.131,67.62 C 618.46,95.353 621.878,134.607 622.731,224.638 z M 331.179,247.952 C 325.389,318.401 287.924,359.905 220.901,359.905 C 159.672,359.905 111.54,304.689 111.54,215.965 C 111.54,126.859 155.405,71.267 227.907,71.267 C 285.79,71.267 326.306,113.916 332.701,184.742 L 263.55,184.742 C 260.81,158.468 249.843,138.285 226.69,138.285 C 190.136,138.285 183.435,174.462 183.435,212.92 C 183.435,265.854 198.665,292.886 223.951,292.886 C 246.492,292.886 260.81,276.511 262.939,247.952 L 331.179,247.952 z M 570.013,247.952 C 564.228,318.401 526.758,359.905 459.74,359.905 C 398.507,359.905 350.379,304.689 350.379,215.965 C 350.379,126.859 394.244,71.267 466.746,71.267 C 524.625,71.267 565.14,113.916 571.536,184.742 L 502.384,184.742 C 499.649,158.468 488.682,138.285 465.529,138.285 C 428.971,138.285 422.27,174.462 422.27,212.92 C 422.27,265.854 437.504,292.886 462.785,292.886 C 485.327,292.886 499.649,276.511 501.778,247.952 L 570.013,247.952 z " horiz-adv-x="687.1578947368421" />
|
34 |
+
<glyph unicode="" d="M 64.00,416.00L 448.00,416.00L 448.00,32.00L 64.00,32.00z" />
|
35 |
+
<glyph unicode="" d="M 192.00,416.00A64.00,64.00 12780.00 1 1 320.00,416A64.00,64.00 12780.00 1 1 192.00,416zM 327.765,359.765A64.00,64.00 12780.00 1 1 455.765,359.765A64.00,64.00 12780.00 1 1 327.765,359.765zM 416.00,224.00A32.00,32.00 12780.00 1 1 480.00,224A32.00,32.00 12780.00 1 1 416.00,224zM 359.765,88.235A32.00,32.00 12780.00 1 1 423.765,88.23500000000001A32.00,32.00 12780.00 1 1 359.765,88.23500000000001zM 224.001,32.00A32.00,32.00 12780.00 1 1 288.001,32A32.00,32.00 12780.00 1 1 224.001,32zM 88.236,88.235A32.00,32.00 12780.00 1 1 152.236,88.23500000000001A32.00,32.00 12780.00 1 1 88.236,88.23500000000001zM 72.236,359.765A48.00,48.00 12780.00 1 1 168.236,359.765A48.00,48.00 12780.00 1 1 72.236,359.765zM 28.00,224.00A36.00,36.00 12780.00 1 1 100.00,224A36.00,36.00 12780.00 1 1 28.00,224z" />
|
36 |
+
<glyph unicode="" d="M 224.00,192.00 L 224.00-16.00 L 144.00,64.00 L 48.00-32.00 L 0.00,16.00 L 96.00,112.00 L 16.00,192.00 ZM 512.00,432.00 L 416.00,336.00 L 496.00,256.00 L 288.00,256.00 L 288.00,464.00 L 368.00,384.00 L 464.00,480.00 Z" />
|
37 |
+
<glyph unicode="" d="M 256.00,448.00 C 397.385,448.00 512.00,354.875 512.00,240.00 C 512.00,125.124 397.385,32.00 256.00,32.00 C 242.422,32.00 229.095,32.867 216.088,34.522 C 161.099-20.467 95.463-30.328 32.00-31.776 L 32.00-18.318 C 66.268-1.529 96.00,29.052 96.00,64.00 C 96.00,68.877 95.621,73.665 94.918,78.348 C 37.02,116.48 0.00,174.725 0.00,240.00 C 0.00,354.875 114.615,448.00 256.00,448.00 Z" />
|
38 |
+
<glyph unicode=" " horiz-adv-x="256" />
|
39 |
+
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
40 |
+
</font></defs></svg>
|
Binary file
|
Binary file
|
@@ -1,408 +1,580 @@
|
|
1 |
-
|
2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
}
|
4 |
|
5 |
-
/*
|
6 |
-
|
|
|
|
|
|
|
7 |
position: absolute;
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
background:
|
19 |
-
|
20 |
-
background:
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
/* Start hidden and with 0 opacity. Opacity is used to fade in modern browsers. */
|
27 |
-
/* Can't use display block to hide initially because widths of slider handles aren't calculated and avaialbe for positioning correctly. */
|
28 |
-
visibility: hidden;
|
29 |
-
opacity: 0;
|
30 |
}
|
31 |
|
32 |
/* General styles for individual controls. */
|
33 |
.kg-video-js-skin .vjs-control {
|
34 |
-
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
/* Hide control text visually, but have it available for screenreaders: h5bp.com/v */
|
45 |
.kg-video-js-skin .vjs-control-text { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
46 |
|
47 |
-
|
48 |
/* Play/Pause
|
49 |
-------------------------------------------------------------------------------- */
|
50 |
-
.kg-video-js-skin .vjs-play-control {
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
/* Rewind
|
56 |
-------------------------------------------------------------------------------- */
|
57 |
-
|
58 |
-
.kg-video-js-skin .vjs-rewind-control div { width: 19px; height: 16px; background: url('
|
|
|
59 |
|
60 |
/* Volume/Mute
|
61 |
-------------------------------------------------------------------------------- */
|
62 |
-
.kg-video-js-skin .vjs-mute-control
|
63 |
-
.kg-video-js-skin .vjs-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
-
.kg-video-js-skin .vjs-volume-control {
|
|
|
|
|
|
|
70 |
.kg-video-js-skin .vjs-volume-bar {
|
71 |
-
|
72 |
-
|
73 |
-
|
|
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#333), to(#666));
|
78 |
-
background: -webkit-linear-gradient(top, #333, #666);
|
79 |
-
background: -o-linear-gradient(top, #333, #666);
|
80 |
-
background: -ms-linear-gradient(top, #333, #666);
|
81 |
-
background: linear-gradient(top, #333, #666);
|
82 |
}
|
|
|
83 |
.kg-video-js-skin .vjs-volume-level {
|
84 |
-
position: absolute;
|
|
|
|
|
|
|
85 |
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
}
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
}
|
101 |
|
|
|
|
|
|
|
|
|
102 |
/* Progress
|
103 |
-------------------------------------------------------------------------------- */
|
104 |
-
.kg-video-js-skin
|
105 |
position: absolute;
|
106 |
-
left:
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
background: linear-gradient(top, #333, #222);
|
120 |
|
|
|
121 |
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
|
126 |
/* Box containing play and load progresses. Also acts as seek scrubber. */
|
127 |
.kg-video-js-skin .vjs-progress-holder {
|
128 |
-
|
129 |
-
|
130 |
-
height: 1.0em;
|
131 |
-
-moz-border-radius: 0.6em; -webkit-border-radius: 0.6em; border-radius: 0.6em;
|
132 |
-
|
133 |
-
/* CSS Gradient */
|
134 |
-
background: #111;
|
135 |
-
background: -moz-linear-gradient(top, #111, #262626);
|
136 |
-
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#111), to(#262626));
|
137 |
-
background: -webkit-linear-gradient(top, #111, #262626);
|
138 |
-
background: -o-linear-gradient(top, #111, #262626);
|
139 |
-
background: -ms-linear-gradient(top, #111, #262626);
|
140 |
-
background: linear-gradient(top, #111, #262626);
|
141 |
}
|
142 |
-
.kg-video-js-skin .vjs-progress-holder .vjs-play-progress,
|
143 |
-
.kg-video-js-skin .vjs-progress-holder .vjs-load-progress { /* Progress Bars */
|
144 |
-
position: absolute; display: block; height: 1.0em; margin: 0; padding: 0;
|
145 |
-
left: 0; top: 0; /*Needed for IE6*/
|
146 |
-
-moz-border-radius: 0.6em; -webkit-border-radius: 0.6em; border-radius: 0.6em;
|
147 |
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
}
|
150 |
|
151 |
.kg-video-js-skin .vjs-play-progress {
|
152 |
-
/*
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
background: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%,#efefef), color-stop(50%,#f5f5f5), color-stop(50%,#dbdbdb), color-stop(100%,#f1f1f1));
|
164 |
-
background: -webkit-linear-gradient(top, #efefef 0%,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);
|
165 |
-
background: -o-linear-gradient(top, #efefef 0%,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);
|
166 |
-
background: -ms-linear-gradient(top, #efefef 0%,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);
|
167 |
-
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#efefef', endColorstr='#f1f1f1',GradientType=0 );
|
168 |
-
background: linear-gradient(top, #efefef 0%,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);
|
169 |
}
|
170 |
.kg-video-js-skin .vjs-load-progress {
|
171 |
-
|
172 |
-
|
173 |
-
/* CSS Gradient */
|
174 |
-
background: #666;
|
175 |
-
background: -moz-linear-gradient(top, #666, #333);
|
176 |
-
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#666), to(#333));
|
177 |
-
background: -webkit-linear-gradient(top, #666, #333);
|
178 |
-
background: -o-linear-gradient(top, #666, #333);
|
179 |
-
background: -ms-linear-gradient(top, #666, #333);
|
180 |
-
background: linear-gradient(top, #666, #333);
|
181 |
}
|
182 |
|
183 |
-
.kg-video-js-skin
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
left: 0; top: 0; /*Needed for IE6*/
|
188 |
|
189 |
-
|
190 |
-
|
191 |
-
-moz-border-radius: 0.8em; -webkit-border-radius: 0.8em; border-radius: 0.8em;
|
192 |
-
/* CSS Shadows */
|
193 |
-
-webkit-box-shadow: 0 2px 4px 0 #000; -moz-box-shadow: 0 2px 4px 0 #000; box-shadow: 0 2px 4px 0 #000;
|
194 |
}
|
|
|
195 |
/* Time Display
|
196 |
-------------------------------------------------------------------------------- */
|
197 |
.kg-video-js-skin .vjs-time-controls {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
position: absolute;
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
background: linear-gradient(top, #333, #222);
|
215 |
|
216 |
-
|
217 |
-
|
|
|
|
|
218 |
}
|
219 |
|
220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
|
222 |
-
|
223 |
-
|
224 |
|
225 |
-
|
|
|
226 |
|
227 |
-
|
228 |
-
|
229 |
|
230 |
-
|
231 |
-
-------------------------------------------------------------------------------- */
|
232 |
-
.vjs-secondary-controls { float: right; }
|
233 |
|
234 |
-
|
235 |
-
|
|
|
|
|
|
|
236 |
|
237 |
-
.kg-video-js-skin
|
|
|
|
|
238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
|
240 |
-
/*
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
-webkit-border-radius: 100px; -moz-border-radius: 100px; border-radius: 100px;
|
247 |
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
background: -o-linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
253 |
-
background: -ms-linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
254 |
-
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#454545', endColorstr='#3f3f3f',GradientType=0 );
|
255 |
-
background: linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
256 |
|
|
|
|
|
257 |
}
|
258 |
|
259 |
-
|
260 |
-
|
|
|
261 |
}
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
269 |
-
|
270 |
-
/* Loading Spinner
|
271 |
-
---------------------------------------------------------*/
|
272 |
-
/* CSS Spinners by Kilian Valkhof - http://kilianvalkhof.com/2010/css-xhtml/css3-loading-spinners-without-images/ */
|
273 |
-
.vjs-loading-spinner {
|
274 |
-
display: none;
|
275 |
-
position: absolute; top: 50%; left: 50%; width: 55px; height: 55px;
|
276 |
-
margin: -28px 0 0 -28px;
|
277 |
-
-webkit-animation-name: rotatethis;
|
278 |
-
-webkit-animation-duration:1s;
|
279 |
-
-webkit-animation-iteration-count:infinite;
|
280 |
-
-webkit-animation-timing-function:linear;
|
281 |
-
-moz-animation-name: rotatethis;
|
282 |
-
-moz-animation-duration:1s;
|
283 |
-
-moz-animation-iteration-count:infinite;
|
284 |
-
-moz-animation-timing-function:linear;
|
285 |
-
}
|
286 |
-
|
287 |
-
@-webkit-keyframes rotatethis {
|
288 |
-
0% {-webkit-transform:scale(0.6) rotate(0deg); }
|
289 |
-
12.5% {-webkit-transform:scale(0.6) rotate(0deg); }
|
290 |
-
12.51% {-webkit-transform:scale(0.6) rotate(45deg); }
|
291 |
-
25% {-webkit-transform:scale(0.6) rotate(45deg); }
|
292 |
-
25.01% {-webkit-transform:scale(0.6) rotate(90deg);}
|
293 |
-
37.5% {-webkit-transform:scale(0.6) rotate(90deg);}
|
294 |
-
37.51% {-webkit-transform:scale(0.6) rotate(135deg);}
|
295 |
-
50% {-webkit-transform:scale(0.6) rotate(135deg);}
|
296 |
-
50.01% {-webkit-transform:scale(0.6) rotate(180deg);}
|
297 |
-
62.5% {-webkit-transform:scale(0.6) rotate(180deg);}
|
298 |
-
62.51% {-webkit-transform:scale(0.6) rotate(225deg);}
|
299 |
-
75% {-webkit-transform:scale(0.6) rotate(225deg);}
|
300 |
-
75.01% {-webkit-transform:scale(0.6) rotate(270deg);}
|
301 |
-
87.5% {-webkit-transform:scale(0.6) rotate(270deg);}
|
302 |
-
87.51% {-webkit-transform:scale(0.6) rotate(315deg);}
|
303 |
-
100% {-webkit-transform:scale(0.6) rotate(315deg);}
|
304 |
-
}
|
305 |
-
|
306 |
-
@-moz-keyframes rotatethis {
|
307 |
-
0% {-moz-transform:scale(0.6) rotate(0deg);}
|
308 |
-
12.5% {-moz-transform:scale(0.6) rotate(0deg);}
|
309 |
-
12.51% {-moz-transform:scale(0.6) rotate(45deg);}
|
310 |
-
25% {-moz-transform:scale(0.6) rotate(45deg);}
|
311 |
-
25.01% {-moz-transform:scale(0.6) rotate(90deg);}
|
312 |
-
37.5% {-moz-transform:scale(0.6) rotate(90deg);}
|
313 |
-
37.51% {-moz-transform:scale(0.6) rotate(135deg);}
|
314 |
-
50% {-moz-transform:scale(0.6) rotate(135deg);}
|
315 |
-
50.01% {-moz-transform:scale(0.6) rotate(180deg);}
|
316 |
-
62.5% {-moz-transform:scale(0.6) rotate(180deg);}
|
317 |
-
62.51% {-moz-transform:scale(0.6) rotate(225deg);}
|
318 |
-
75% {-moz-transform:scale(0.6) rotate(225deg);}
|
319 |
-
75.01% {-moz-transform:scale(0.6) rotate(270deg);}
|
320 |
-
87.5% {-moz-transform:scale(0.6) rotate(270deg);}
|
321 |
-
87.51% {-moz-transform:scale(0.6) rotate(315deg);}
|
322 |
-
100% {-moz-transform:scale(0.6) rotate(315deg);}
|
323 |
-
}
|
324 |
-
/* Each circle */
|
325 |
-
div.vjs-loading-spinner .ball1 { opacity: 0.12; position:absolute; left: 20px; top: 0px; width: 13px; height: 13px; background: #fff;
|
326 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
327 |
-
|
328 |
-
div.vjs-loading-spinner .ball2 { opacity: 0.25; position:absolute; left: 34px; top: 6px; width: 13px; height: 13px; background: #fff;
|
329 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
330 |
-
|
331 |
-
div.vjs-loading-spinner .ball3 { opacity: 0.37; position:absolute; left: 40px; top: 20px; width: 13px; height: 13px; background: #fff;
|
332 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
333 |
-
|
334 |
-
div.vjs-loading-spinner .ball4 { opacity: 0.50; position:absolute; left: 34px; top: 34px; width: 13px; height: 13px; background: #fff;
|
335 |
-
border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 15px; border: 1px solid #ccc; }
|
336 |
-
|
337 |
-
div.vjs-loading-spinner .ball5 { opacity: 0.62; position:absolute; left: 20px; top: 40px; width: 13px; height: 13px; background: #fff;
|
338 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
339 |
-
|
340 |
-
div.vjs-loading-spinner .ball6 { opacity: 0.75; position:absolute; left: 6px; top: 34px; width: 13px; height: 13px; background: #fff;
|
341 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
342 |
-
|
343 |
-
div.vjs-loading-spinner .ball7 { opacity: 0.87; position:absolute; left: 0px; top: 20px; width: 13px; height: 13px; background: #fff;
|
344 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
345 |
-
|
346 |
-
div.vjs-loading-spinner .ball8 { opacity: 1.00; position:absolute; left: 6px; top: 6px; width: 13px; height: 13px; background: #fff;
|
347 |
-
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
348 |
|
349 |
/* Menu Buttons (Captions/Subtitles/etc.)
|
350 |
-------------------------------------------------------------------------------- */
|
351 |
.kg-video-js-skin .vjs-menu-button {
|
352 |
-
float: right;
|
|
|
|
|
353 |
|
354 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
background: -ms-linear-gradient(top, #4d4d4d 0%,#3f3f3f 50%,#333333 50%,#252525 100%);
|
362 |
-
background: linear-gradient(top, #4d4d4d 0%,#3f3f3f 50%,#333333 50%,#252525 100%);
|
363 |
}
|
364 |
-
/* Button Icon */
|
365 |
-
.kg-video-js-skin .vjs-menu-button div { background: url('kg-video-js-skin.png') 0px -75px no-repeat; width: 16px; height: 16px; margin: 0.2em auto 0; padding: 0; }
|
366 |
|
367 |
/* Button Pop-up Menu */
|
368 |
-
.kg-video-js-skin .vjs-menu-button
|
369 |
-
display:
|
370 |
-
opacity: 0.8;
|
371 |
padding: 0; margin: 0;
|
372 |
-
position: absolute;
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
-moz-border-radius: 0.7em; -webkit-border-radius: 1em; border-radius: .5em;
|
377 |
-
-webkit-box-shadow: 0 2px 4px 0 #000; -moz-box-shadow: 0 2px 4px 0 #000; box-shadow: 0 2px 4px 0 #000;
|
378 |
overflow: auto;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
}
|
380 |
|
381 |
-
|
382 |
-
.kg-video-js-skin .vjs-menu-button:hover
|
383 |
-
|
384 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
.kg-video-js-skin .vjs-menu-button ul li:focus,
|
386 |
.kg-video-js-skin .vjs-menu-button ul li:hover,
|
387 |
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected:focus,
|
388 |
-
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected:hover {
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
cursor: default;
|
395 |
-
|
396 |
-
background: #4d4d4d;
|
397 |
-
background: -moz-linear-gradient(top, #4d4d4d 0%, #3f3f3f 50%, #333333 50%, #252525 100%);
|
398 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4d4d4d), color-stop(50%,#3f3f3f), color-stop(50%,#333333), color-stop(100%,#252525));
|
399 |
-
background: -webkit-linear-gradient(top, #4d4d4d 0%,#3f3f3f 50%,#333333 50%,#252525 100%);
|
400 |
-
background: -o-linear-gradient(top, #4d4d4d 0%,#3f3f3f 50%,#333333 50%,#252525 100%);
|
401 |
-
background: -ms-linear-gradient(top, #4d4d4d 0%,#3f3f3f 50%,#333333 50%,#252525 100%);
|
402 |
-
background: linear-gradient(top, #4d4d4d 0%,#3f3f3f 50%,#333333 50%,#252525 100%);
|
403 |
}
|
404 |
|
405 |
/* Subtitles Button */
|
406 |
-
.kg-video-js-skin .vjs-
|
407 |
-
|
408 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
Custom Video.js skin for Video Embed & Thumbnail Generator
|
3 |
+
by Kyle Gilman (http://www.kylegilman.net/)
|
4 |
+
*/
|
5 |
+
|
6 |
+
|
7 |
+
|
8 |
+
/* Base UI Component Classes
|
9 |
+
-------------------------------------------------------------------------------- */
|
10 |
+
@font-face{
|
11 |
+
font-family: 'VideoJS';
|
12 |
+
src: url('font/vjs.eot');
|
13 |
+
src: url('font/vjs.eot') format('embedded-opentype'),
|
14 |
+
url('font/vjs.woff') format('woff'),
|
15 |
+
url('font/vjs.ttf') format('truetype');
|
16 |
+
font-weight: normal;
|
17 |
+
font-style: normal;
|
18 |
+
}
|
19 |
+
|
20 |
+
.kg-video-js-skin {
|
21 |
+
color: #ccc;
|
22 |
+
}
|
23 |
+
|
24 |
+
/* Slider - used for Volume bar and Seek bar */
|
25 |
+
.kg-video-js-skin .vjs-slider {
|
26 |
+
z-index: 1002;
|
27 |
+
outline: 0; /* Replace browser focus hightlight with handle highlight */
|
28 |
+
position: relative;
|
29 |
+
cursor: pointer;
|
30 |
+
padding: 0;
|
31 |
+
background: rgb(50, 50, 50); /* IE8- Fallback */
|
32 |
+
background: rgba(100, 100, 100, 0.5);
|
33 |
+
}
|
34 |
+
|
35 |
+
.kg-video-js-skin .vjs-slider:focus {
|
36 |
+
background: rgb(70, 70, 70); /* IE8- Fallback */
|
37 |
+
background: rgba(100, 100, 100, 0.70);
|
38 |
+
|
39 |
+
-webkit-box-shadow: 0 0 2em rgba(255, 255, 255, 1);
|
40 |
+
-moz-box-shadow: 0 0 2em rgba(255, 255, 255, 1);
|
41 |
+
box-shadow: 0 0 2em rgba(255, 255, 255, 1);
|
42 |
+
}
|
43 |
+
|
44 |
+
.kg-video-js-skin .vjs-slider-handle {
|
45 |
+
position: absolute;
|
46 |
+
/* Needed for IE6 */
|
47 |
+
left: 0;
|
48 |
+
top: 0;
|
49 |
+
}
|
50 |
+
|
51 |
+
.kg-video-js-skin .vjs-slider-handle:before {
|
52 |
+
/*content: "\f111";*/ /* Circle icon = f111 */
|
53 |
+
content: "\e009"; /* Square icon */
|
54 |
+
font-family: VideoJS;
|
55 |
+
font-size: 1em;
|
56 |
+
line-height: 1;
|
57 |
+
text-align: center;
|
58 |
+
text-shadow: 0em 0em 1em #fff;
|
59 |
+
|
60 |
+
position: absolute;
|
61 |
+
top: 0;
|
62 |
+
left: 0;
|
63 |
+
|
64 |
+
/* Rotate the square icon to make a diamond */
|
65 |
+
-webkit-transform: rotate(-45deg);
|
66 |
+
-moz-transform: rotate(-45deg);
|
67 |
+
-ms-transform: rotate(-45deg);
|
68 |
+
-o-transform: rotate(-45deg);
|
69 |
+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
|
70 |
}
|
71 |
|
72 |
+
/* Control Bar
|
73 |
+
-------------------------------------------------------------------------------- */
|
74 |
+
/* The default control bar. Created by controls.js */
|
75 |
+
.kg-video-js-skin .vjs-control-bar {
|
76 |
+
display: none; /* Start hidden */
|
77 |
position: absolute;
|
78 |
+
/* Distance from the bottom of the box/video. Keep 0. Use height to add more bottom margin. */
|
79 |
+
bottom: 0;
|
80 |
+
/* 100% width of player div */
|
81 |
+
left: 0;
|
82 |
+
right: 0;
|
83 |
+
/* Controls are absolutely position, so no padding necessary */
|
84 |
+
padding: 0;
|
85 |
+
margin: 0;
|
86 |
+
/* Height includes any margin you want above or below control items */
|
87 |
+
height: 3.0em;
|
88 |
+
background-color: rgb(0, 0, 0);
|
89 |
+
/* Slight blue so it can be seen more easily on black. */
|
90 |
+
background-color: rgba(40, 40, 40, 0.7);
|
91 |
+
/* Default font settings */
|
92 |
+
font-style: normal;
|
93 |
+
font-weight: normal;
|
94 |
+
font-family: Arial, sans-serif;
|
95 |
+
z-index: 1002;
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
|
98 |
/* General styles for individual controls. */
|
99 |
.kg-video-js-skin .vjs-control {
|
100 |
+
outline: none;
|
101 |
+
position: relative;
|
102 |
+
float: left;
|
103 |
+
text-align: center;
|
104 |
+
margin: 0;
|
105 |
+
padding: 0;
|
106 |
+
height: 3.0em;
|
107 |
+
width: 4em;
|
108 |
}
|
109 |
|
110 |
+
/* FontAwsome button icons */
|
111 |
+
.kg-video-js-skin .vjs-control:before {
|
112 |
+
font-family: VideoJS;
|
113 |
+
font-size: 1.5em;
|
114 |
+
line-height: 2;
|
115 |
+
position: absolute;
|
116 |
+
top: 0;
|
117 |
+
left: 0;
|
118 |
+
width: 100%;
|
119 |
+
height: 100%;
|
120 |
+
text-align: center;
|
121 |
+
text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
|
122 |
}
|
123 |
|
124 |
+
/* Replacement for focus outline */
|
125 |
+
.kg-video-js-skin .vjs-control:focus:before,
|
126 |
+
.kg-video-js-skin .vjs-control:hover:before {
|
127 |
+
text-shadow: 0em 0em 1em rgba(255, 255, 255, 1);
|
128 |
+
}
|
129 |
+
|
130 |
+
.kg-video-js-skin .vjs-control:focus { /* outline: 0; */ /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ }
|
131 |
+
|
132 |
/* Hide control text visually, but have it available for screenreaders: h5bp.com/v */
|
133 |
.kg-video-js-skin .vjs-control-text { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
134 |
|
|
|
135 |
/* Play/Pause
|
136 |
-------------------------------------------------------------------------------- */
|
137 |
+
.kg-video-js-skin .vjs-play-control {
|
138 |
+
width: 5em;
|
139 |
+
cursor: pointer;
|
140 |
+
}
|
141 |
+
.kg-video-js-skin .vjs-play-control:before {
|
142 |
+
content: "\e001"; /* Play Icon */
|
143 |
+
}
|
144 |
+
.kg-video-js-skin.vjs-playing .vjs-play-control:before {
|
145 |
+
content: "\e002"; /* Pause Icon */
|
146 |
+
}
|
147 |
|
148 |
/* Rewind
|
149 |
-------------------------------------------------------------------------------- */
|
150 |
+
/*.kg-video-js-skin .vjs-rewind-control { width: 5em; cursor: pointer !important; }
|
151 |
+
.kg-video-js-skin .vjs-rewind-control div { width: 19px; height: 16px; background: url('video-js.png'); margin: 0.5em auto 0; }
|
152 |
+
*/
|
153 |
|
154 |
/* Volume/Mute
|
155 |
-------------------------------------------------------------------------------- */
|
156 |
+
.kg-video-js-skin .vjs-mute-control,
|
157 |
+
.kg-video-js-skin .vjs-volume-menu-button {
|
158 |
+
cursor: pointer;
|
159 |
+
float: right;
|
160 |
+
}
|
161 |
+
.kg-video-js-skin .vjs-mute-control:before,
|
162 |
+
.kg-video-js-skin .vjs-volume-menu-button:before {
|
163 |
+
content: "\e006"; /* Full volume */
|
164 |
+
}
|
165 |
+
.kg-video-js-skin .vjs-mute-control.vjs-vol-0:before,
|
166 |
+
.kg-video-js-skin .vjs-volume-menu-button.vjs-vol-0:before {
|
167 |
+
content: "\e003"; /* No volume */
|
168 |
+
}
|
169 |
+
.kg-video-js-skin .vjs-mute-control.vjs-vol-1:before,
|
170 |
+
.kg-video-js-skin .vjs-volume-menu-button.vjs-vol-1:before {
|
171 |
+
content: "\e004"; /* Half volume */
|
172 |
+
}
|
173 |
+
.kg-video-js-skin .vjs-mute-control.vjs-vol-2:before,
|
174 |
+
.kg-video-js-skin .vjs-volume-menu-button.vjs-vol-2:before {
|
175 |
+
content: "\e005"; /* Full volume */
|
176 |
+
}
|
177 |
|
178 |
+
.kg-video-js-skin .vjs-volume-control {
|
179 |
+
width: 5em;
|
180 |
+
float: right;
|
181 |
+
}
|
182 |
.kg-video-js-skin .vjs-volume-bar {
|
183 |
+
width: 5em;
|
184 |
+
height: 0.6em;
|
185 |
+
margin: 1.1em auto 0;
|
186 |
+
}
|
187 |
|
188 |
+
.kg-video-js-skin .vjs-volume-menu-button .vjs-menu-content {
|
189 |
+
height: 2.9em;
|
|
|
|
|
|
|
|
|
|
|
190 |
}
|
191 |
+
|
192 |
.kg-video-js-skin .vjs-volume-level {
|
193 |
+
position: absolute;
|
194 |
+
top: 0;
|
195 |
+
left: 0;
|
196 |
+
height: 0.5em;
|
197 |
|
198 |
+
background: #66A8CC
|
199 |
+
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC)
|
200 |
+
-50% 0 repeat;
|
201 |
+
}
|
202 |
+
.kg-video-js-skin .vjs-volume-bar .vjs-volume-handle {
|
203 |
+
width: 0.5em;
|
204 |
+
height: 0.5em;
|
205 |
+
}
|
206 |
|
207 |
+
.kg-video-js-skin .vjs-volume-handle:before {
|
208 |
+
font-size: 0.9em;
|
209 |
+
top: -0.2em;
|
210 |
+
left: -0.2em;
|
211 |
+
|
212 |
+
width: 1em;
|
213 |
+
height: 1em;
|
214 |
}
|
215 |
+
|
216 |
+
.kg-video-js-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
|
217 |
+
width: 6em;
|
218 |
+
left: -4em;
|
219 |
}
|
220 |
|
221 |
+
/*.kg-video-js-skin .vjs-menu-button .vjs-volume-control {
|
222 |
+
height: 1.5em;
|
223 |
+
}*/
|
224 |
+
|
225 |
/* Progress
|
226 |
-------------------------------------------------------------------------------- */
|
227 |
+
.kg-video-js-skin .vjs-progress-control {
|
228 |
position: absolute;
|
229 |
+
left: 0;
|
230 |
+
right: 0;
|
231 |
+
width: auto;
|
232 |
+
font-size: 0.3em;
|
233 |
+
height: 1em;
|
234 |
+
/* Set above the rest of the controls. */
|
235 |
+
top: -1em;
|
236 |
+
|
237 |
+
/* Shrink the bar slower than it grows. */
|
238 |
+
-webkit-transition: top 0.4s, height 0.4s, font-size 0.4s, -webkit-transform 0.4s;
|
239 |
+
-moz-transition: top 0.4s, height 0.4s, font-size 0.4s, -moz-transform 0.4s;
|
240 |
+
-o-transition: top 0.4s, height 0.4s, font-size 0.4s, -o-transform 0.4s;
|
241 |
+
transition: top 0.4s, height 0.4s, font-size 0.4s, transform 0.4s;
|
|
|
242 |
|
243 |
+
}
|
244 |
|
245 |
+
/* On hover, make the progress bar grow to something that's more clickable.
|
246 |
+
This simply changes the overall font for the progress bar, and this
|
247 |
+
updates both the em-based widths and heights, as wells as the icon font */
|
248 |
+
.kg-video-js-skin:hover .vjs-progress-control {
|
249 |
+
font-size: .9em;
|
250 |
+
|
251 |
+
/* Even though we're not changing the top/height, we need to include them in
|
252 |
+
the transition so they're handled correctly. */
|
253 |
+
-webkit-transition: top 0.2s, height 0.2s, font-size 0.2s, -webkit-transform 0.2s;
|
254 |
+
-moz-transition: top 0.2s, height 0.2s, font-size 0.2s, -moz-transform 0.2s;
|
255 |
+
-o-transition: top 0.2s, height 0.2s, font-size 0.2s, -o-transform 0.2s;
|
256 |
+
transition: top 0.2s, height 0.2s, font-size 0.2s, transform 0.2s;
|
257 |
}
|
258 |
|
259 |
/* Box containing play and load progresses. Also acts as seek scrubber. */
|
260 |
.kg-video-js-skin .vjs-progress-holder {
|
261 |
+
/* Placement within the progress control item */
|
262 |
+
height: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
263 |
}
|
|
|
|
|
|
|
|
|
|
|
264 |
|
265 |
+
/* Progress Bars */
|
266 |
+
.kg-video-js-skin .vjs-progress-holder .vjs-play-progress,
|
267 |
+
.kg-video-js-skin .vjs-progress-holder .vjs-load-progress {
|
268 |
+
position: absolute;
|
269 |
+
display: block;
|
270 |
+
height: 100%;
|
271 |
+
margin: 0;
|
272 |
+
padding: 0;
|
273 |
+
/* Needed for IE6 */
|
274 |
+
left: 0;
|
275 |
+
top: 0;
|
276 |
}
|
277 |
|
278 |
.kg-video-js-skin .vjs-play-progress {
|
279 |
+
/*
|
280 |
+
Using a data URI to create the white diagonal lines with a transparent
|
281 |
+
background. Surprising works in IE8.
|
282 |
+
Created using http://www.patternify.com
|
283 |
+
Changing the first color value will change the bar color.
|
284 |
+
Also using a paralax effect to make the lines move backwards.
|
285 |
+
The -50% left position makes that happen.
|
286 |
+
*/
|
287 |
+
background: #66A8CC
|
288 |
+
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC)
|
289 |
+
-50% 0 repeat;
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
}
|
291 |
.kg-video-js-skin .vjs-load-progress {
|
292 |
+
background: rgb(100, 100, 100); /* IE8- Fallback */
|
293 |
+
background: rgba(255, 255, 255, 0.4);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
}
|
295 |
|
296 |
+
.kg-video-js-skin .vjs-seek-handle {
|
297 |
+
width: 1.5em;
|
298 |
+
height: 100%;
|
299 |
+
}
|
|
|
300 |
|
301 |
+
.kg-video-js-skin .vjs-seek-handle:before {
|
302 |
+
padding-top: 0.1em; /* Minor adjustment */
|
|
|
|
|
|
|
303 |
}
|
304 |
+
|
305 |
/* Time Display
|
306 |
-------------------------------------------------------------------------------- */
|
307 |
.kg-video-js-skin .vjs-time-controls {
|
308 |
+
font-size: 1em;
|
309 |
+
/* Align vertically by making the line height the same as the control bar */
|
310 |
+
line-height: 3em;
|
311 |
+
}
|
312 |
+
.kg-video-js-skin .vjs-current-time { float: left; }
|
313 |
+
.kg-video-js-skin .vjs-duration { float: left; }
|
314 |
+
/* Remaining time is in the HTML, but not included in default design */
|
315 |
+
.kg-video-js-skin .vjs-remaining-time { display: none; float: left; }
|
316 |
+
.vjs-time-divider { float: left; line-height: 3em; }
|
317 |
+
|
318 |
+
/* Fullscreen
|
319 |
+
-------------------------------------------------------------------------------- */
|
320 |
+
.kg-video-js-skin .vjs-fullscreen-control {
|
321 |
+
width: 3.8em;
|
322 |
+
cursor: pointer;
|
323 |
+
float: right;
|
324 |
+
}
|
325 |
+
.kg-video-js-skin .vjs-fullscreen-control:before {
|
326 |
+
content: "\e000"; /* Enter full screen */
|
327 |
+
}
|
328 |
+
.kg-video-js-skin.vjs-fullscreen .vjs-fullscreen-control:before {
|
329 |
+
content: "\e00b"; /* Exit full screen */
|
330 |
+
}
|
331 |
+
|
332 |
+
/* Big Play Button (at start)
|
333 |
+
---------------------------------------------------------*/
|
334 |
+
.kg-video-js-skin .vjs-big-play-button {
|
335 |
+
display: block;
|
336 |
+
z-index: 2;
|
337 |
position: absolute;
|
338 |
+
top: 49%;
|
339 |
+
left: 49%;
|
340 |
+
width: 8em;
|
341 |
+
height: 8em;
|
342 |
+
margin: -4em;
|
343 |
+
text-align: center;
|
344 |
+
vertical-align: middle;
|
345 |
+
cursor: pointer;
|
346 |
+
opacity: 1;
|
347 |
+
|
348 |
+
/* Need a slightly gray bg so it can be seen on black backgrounds */
|
349 |
+
background-color: rgb(40, 40, 40);
|
350 |
+
background-color: rgba(40, 40, 40, 0.7);
|
351 |
+
|
352 |
+
border: 0.6em solid rgb(255, 255, 255);
|
353 |
+
border-color: rgba(255, 255, 255, 0.7);
|
354 |
+
|
355 |
+
-webkit-border-radius: 100px;
|
356 |
+
-moz-border-radius: 100px;
|
357 |
+
border-radius: 100px;
|
358 |
+
|
359 |
+
-webkit-transition: border 0.4s, -webkit-box-shadow 0.4s, -webkit-transform 0.4s;
|
360 |
+
-moz-transition: border 0.4s, -moz-box-shadow 0.4s, -moz-transform 0.4s;
|
361 |
+
-o-transition: border 0.4s, -o-box-shadow 0.4s, -o-transform 0.4s;
|
362 |
+
transition: border 0.4s, box-shadow 0.4s, transform 0.4s;
|
363 |
+
}
|
364 |
|
365 |
+
.kg-video-js-skin:hover .vjs-big-play-button,
|
366 |
+
.kg-video-js-skin .vjs-big-play-button:focus {
|
367 |
+
outline: 0;
|
368 |
+
border-color: rgb(255, 255, 255);
|
369 |
+
border-color: rgba(255, 255, 255, 1);
|
370 |
+
/* IE8 needs a non-glow hover state */
|
371 |
+
background-color: rgb(80, 80, 80);
|
372 |
+
background-color: rgba(50, 50, 50, 0.75);
|
373 |
+
|
374 |
+
-webkit-transition: border 0s, -webkit-box-shadow 0s, -webkit-transform 0s;
|
375 |
+
-moz-transition: border 0s, -moz-box-shadow 0s, -moz-transform 0s;
|
376 |
+
-o-transition: border 0s, -o-box-shadow 0s, -o-transform 0s;
|
377 |
+
transition: border 0s, box-shadow 0s, transform 0s;
|
378 |
+
}
|
379 |
|
380 |
+
.kg-video-js-skin .vjs-big-play-button:before {
|
381 |
+
content: "\e001"; /* Play icon */
|
382 |
+
font-family: VideoJS;
|
383 |
+
font-size: 4em;
|
384 |
+
line-height: 1.8;
|
385 |
+
text-align: center; /* Needed for IE8 */
|
|
|
386 |
|
387 |
+
position: absolute;
|
388 |
+
left: 0;
|
389 |
+
width: 100%;
|
390 |
+
height: 100%;
|
391 |
}
|
392 |
|
393 |
+
/* Loading Spinner
|
394 |
+
---------------------------------------------------------*/
|
395 |
+
.vjs-loading-spinner {
|
396 |
+
display: none;
|
397 |
+
position: absolute;
|
398 |
+
top: 50%;
|
399 |
+
left: 50%;
|
400 |
|
401 |
+
font-size: 5em;
|
402 |
+
line-height: 1;
|
403 |
|
404 |
+
width: 1em;
|
405 |
+
height: 1em;
|
406 |
|
407 |
+
margin-left: -0.5em;
|
408 |
+
margin-top: -0.5em;
|
409 |
|
410 |
+
opacity: 0.75;
|
|
|
|
|
411 |
|
412 |
+
-webkit-animation: spin 1.5s infinite linear;
|
413 |
+
-moz-animation: spin 1.5s infinite linear;
|
414 |
+
-o-animation: spin 1.5s infinite linear;
|
415 |
+
animation: spin 1.5s infinite linear;
|
416 |
+
}
|
417 |
|
418 |
+
.kg-video-js-skin .vjs-loading-spinner:before {
|
419 |
+
content: "\e00a"; /* Loading spinner icon */
|
420 |
+
font-family: VideoJS;
|
421 |
|
422 |
+
position: absolute;
|
423 |
+
width: 1em;
|
424 |
+
height: 1em;
|
425 |
+
text-align: center;
|
426 |
+
text-shadow: 0em 0em 0.1em #000;
|
427 |
+
}
|
428 |
|
429 |
+
/* Add a gradient to the spinner by overlaying another copy.
|
430 |
+
Text gradient plus a text shadow doesn't work
|
431 |
+
and `background-clip: text` only works in Webkit. */
|
432 |
+
.kg-video-js-skin .vjs-loading-spinner:after {
|
433 |
+
content: "\e00a"; /* Loading spinner icon */
|
434 |
+
font-family: VideoJS;
|
|
|
435 |
|
436 |
+
position: absolute;
|
437 |
+
width: 1em;
|
438 |
+
height: 1em;
|
439 |
+
text-align: center;
|
|
|
|
|
|
|
|
|
440 |
|
441 |
+
-webkit-background-clip: text;
|
442 |
+
-webkit-text-fill-color: transparent;
|
443 |
}
|
444 |
|
445 |
+
@-moz-keyframes spin {
|
446 |
+
0% { -moz-transform: rotate(0deg); }
|
447 |
+
100% { -moz-transform: rotate(359deg); }
|
448 |
}
|
449 |
+
@-webkit-keyframes spin {
|
450 |
+
0% { -webkit-transform: rotate(0deg); }
|
451 |
+
100% { -webkit-transform: rotate(359deg); }
|
452 |
+
}
|
453 |
+
@-o-keyframes spin {
|
454 |
+
0% { -o-transform: rotate(0deg); }
|
455 |
+
100% { -o-transform: rotate(359deg); }
|
456 |
+
}
|
457 |
+
@-ms-keyframes spin {
|
458 |
+
0% { -ms-transform: rotate(0deg); }
|
459 |
+
100% { -ms-transform: rotate(359deg); }
|
460 |
+
}
|
461 |
+
@keyframes spin {
|
462 |
+
0% { transform: rotate(0deg); }
|
463 |
+
100% { transform: rotate(359deg); }
|
464 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
|
466 |
/* Menu Buttons (Captions/Subtitles/etc.)
|
467 |
-------------------------------------------------------------------------------- */
|
468 |
.kg-video-js-skin .vjs-menu-button {
|
469 |
+
float: right;
|
470 |
+
cursor: pointer;
|
471 |
+
}
|
472 |
|
473 |
+
.kg-video-js-skin .vjs-menu {
|
474 |
+
display: none;
|
475 |
+
position: absolute;
|
476 |
+
bottom: 0;
|
477 |
+
left: 0em; /* (Width of vjs-menu - width of button) / 2 */
|
478 |
+
width: 0em;
|
479 |
+
height: 0em;
|
480 |
+
margin-bottom: 3em;
|
481 |
|
482 |
+
border-left: 2em solid transparent;
|
483 |
+
border-right: 2em solid transparent;
|
484 |
+
|
485 |
+
border-top: 1.55em solid rgb(0, 0, 0); /* Same top as ul bottom */
|
486 |
+
border-top-color: rgba(7, 40, 50, 0.5); /* Same as ul background */
|
|
|
|
|
487 |
}
|
|
|
|
|
488 |
|
489 |
/* Button Pop-up Menu */
|
490 |
+
.kg-video-js-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
|
491 |
+
display: block;
|
|
|
492 |
padding: 0; margin: 0;
|
493 |
+
position: absolute;
|
494 |
+
width: 10em;
|
495 |
+
bottom: 1.5em; /* Same bottom as vjs-menu border-top */
|
496 |
+
max-height: 15em;
|
|
|
|
|
497 |
overflow: auto;
|
498 |
+
|
499 |
+
left: -5em; /* Width of menu - width of button / 2 */
|
500 |
+
|
501 |
+
background-color: rgb(0, 0, 0);
|
502 |
+
background-color: rgba(7, 40, 50, 0.7);
|
503 |
+
|
504 |
+
-webkit-box-shadow: -20px -20px 0px rgba(255, 255, 255, 0.5);
|
505 |
+
-moz-box-shadow: 0 0 1em rgba(255, 255, 255, 0.5);
|
506 |
+
box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
507 |
}
|
508 |
|
509 |
+
/*.kg-video-js-skin .vjs-menu-button:focus ul,*/ /* This is not needed because keyboard accessibility for the caption button is not handled with the focus any more. */
|
510 |
+
.kg-video-js-skin .vjs-menu-button:hover .vjs-menu {
|
511 |
+
display: block;
|
512 |
+
}
|
513 |
+
.kg-video-js-skin .vjs-menu-button ul li {
|
514 |
+
list-style: none;
|
515 |
+
margin: 0;
|
516 |
+
padding: 0.3em 0 0.3em 0;
|
517 |
+
line-height: 1.4em;
|
518 |
+
font-size: 1.2em;
|
519 |
+
font-weight: normal;
|
520 |
+
text-align: center;
|
521 |
+
text-transform: lowercase;
|
522 |
+
}
|
523 |
+
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected {
|
524 |
+
background-color: #000;
|
525 |
+
}
|
526 |
.kg-video-js-skin .vjs-menu-button ul li:focus,
|
527 |
.kg-video-js-skin .vjs-menu-button ul li:hover,
|
528 |
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected:focus,
|
529 |
+
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected:hover {
|
530 |
+
background-color: rgb(255, 255, 255);
|
531 |
+
background-color: rgba(255, 255, 255, 0.75);
|
532 |
+
color: #111;
|
533 |
+
outline: 0;
|
534 |
|
535 |
+
-webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
536 |
+
-moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
537 |
+
box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
538 |
+
}
|
539 |
+
.kg-video-js-skin .vjs-menu-button ul li.vjs-menu-title {
|
540 |
+
text-align: center;
|
541 |
+
text-transform: uppercase;
|
542 |
+
font-size: 1em;
|
543 |
+
line-height: 2em;
|
544 |
+
padding: 0;
|
545 |
+
margin: 0 0 0.3em 0;
|
546 |
+
font-weight: bold;
|
547 |
cursor: default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
}
|
549 |
|
550 |
/* Subtitles Button */
|
551 |
+
.kg-video-js-skin .vjs-subtitles-button:before { content: "\e00c"; }
|
552 |
+
|
553 |
+
/* There's unfortunately no CC button in FontAwesome, so we need
|
554 |
+
to manually create one. Please +1 the fontawesome request.
|
555 |
+
https://github.com/FortAwesome/Font-Awesome/issues/968 */
|
556 |
+
.kg-video-js-skin .vjs-captions-button {
|
557 |
+
font-size: 1em; /* Font icons are 1.5em */
|
558 |
+
}
|
559 |
+
.kg-video-js-skin .vjs-captions-button:before {
|
560 |
+
content: "\e008";
|
561 |
+
font-family: VideoJS;
|
562 |
+
font-size: 1.5em;
|
563 |
+
line-height: 2;
|
564 |
+
position: absolute;
|
565 |
+
top: 0;
|
566 |
+
left: 0;
|
567 |
+
width: 100%;
|
568 |
+
height: 100%;
|
569 |
+
text-align: center;
|
570 |
+
text-shadow: none;
|
571 |
+
}
|
572 |
+
|
573 |
+
|
574 |
+
/* Replacement for focus outline */
|
575 |
+
.kg-video-js-skin .vjs-captions-button:focus .vjs-control-content:before,
|
576 |
+
.kg-video-js-skin .vjs-captions-button:hover .vjs-control-content:before {
|
577 |
+
-webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
578 |
+
-moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
579 |
+
box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
580 |
+
}
|
Binary file
|
@@ -1 +1,730 @@
|
|
1 |
-
.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.vjs-poster{margin:0 auto;padding:0;cursor:pointer;position:relative;width:100%;max-height:100%}.video-js .vjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.video-js .vjs-text-track{display:none;color:#fff;font-size:1.4em;text-align:center;margin-bottom:.1em;background:#000;background:rgba(0,0,0,0.50)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.vjs-fade-in{visibility:visible!important;opacity:1!important;-webkit-transition:visibility 0s linear 0s,opacity .3s linear;-moz-transition:visibility 0s linear 0s,opacity .3s linear;-ms-transition:visibility 0s linear 0s,opacity .3s linear;-o-transition:visibility 0s linear 0s,opacity .3s linear;transition:visibility 0s linear 0s,opacity .3s linear}.vjs-fade-out{visibility:hidden!important;opacity:0!important;-webkit-transition:visibility 0s linear 1.5s,opacity 1.5s linear;-moz-transition:visibility 0s linear 1.5s,opacity 1.5s linear;-ms-transition:visibility 0s linear 1.5s,opacity 1.5s linear;-o-transition:visibility 0s linear 1.5s,opacity 1.5s linear;transition:visibility 0s linear 1.5s,opacity 1.5s linear}.vjs-default-skin .vjs-controls{position:absolute;bottom:0;left:0;right:0;margin:0;padding:0;height:2.6em;color:#fff;border-top:1px solid #404040;background:#242424;background:-moz-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(50%,#242424),color-stop(50%,#1f1f1f),color-stop(100%,#171717));background:-webkit-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:-o-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:-ms-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);visibility:hidden;opacity:0}.vjs-default-skin .vjs-control{position:relative;float:left;text-align:center;margin:0;padding:0;height:2.6em;width:2.6em}.vjs-default-skin .vjs-control:focus{outline:0}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer!important}.vjs-default-skin.vjs-paused .vjs-play-control div{width:15px;height:17px;background:url('video-js.png');margin:.5em auto 0}.vjs-default-skin.vjs-playing .vjs-play-control div{width:15px;height:17px;background:url('video-js.png') -25px 0;margin:.5em auto 0}.vjs-default-skin .vjs-rewind-control{width:5em;cursor:pointer!important}.vjs-default-skin .vjs-rewind-control div{width:19px;height:16px;background:url('video-js.png');margin:.5em auto 0}.vjs-default-skin .vjs-mute-control{width:3.8em;cursor:pointer!important;float:right}.vjs-default-skin .vjs-mute-control div{width:22px;height:16px;background:url('video-js.png') -75px -25px;margin:.5em auto 0}.vjs-default-skin .vjs-mute-control.vjs-vol-0 div{background:url('video-js.png') 0 -25px}.vjs-default-skin .vjs-mute-control.vjs-vol-1 div{background:url('video-js.png') -25px -25px}.vjs-default-skin .vjs-mute-control.vjs-vol-2 div{background:url('video-js.png') -50px -25px}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{position:relative;width:5em;height:.6em;margin:1em auto 0;cursor:pointer!important;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;background:#666;background:-moz-linear-gradient(top,#333,#666);background:-webkit-gradient(linear,0% 0,0% 100%,from(#333),to(#666));background:-webkit-linear-gradient(top,#333,#666);background:-o-linear-gradient(top,#333,#666);background:-ms-linear-gradient(top,#333,#666);background:linear-gradient(top,#333,#666)}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.6em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;background:#fff;background:-moz-linear-gradient(top,#fff,#ccc);background:-webkit-gradient(linear,0% 0,0% 100%,from(#fff),to(#ccc));background:-webkit-linear-gradient(top,#fff,#ccc);background:-o-linear-gradient(top,#fff,#ccc);background:-ms-linear-gradient(top,#fff,#ccc);background:linear-gradient(top,#fff,#ccc)}.vjs-default-skin .vjs-volume-handle{position:absolute;top:-0.2em;width:.8em;height:.8em;background:#ccc;left:0;border:1px solid #fff;-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em}.vjs-default-skin div.vjs-progress-control{position:absolute;left:4.8em;right:4.8em;height:1.0em;width:auto;top:-1.3em;border-bottom:1px solid #1f1f1f;border-top:1px solid #222;background:#333;background:-moz-linear-gradient(top,#222,#333);background:-webkit-gradient(linear,0% 0,0% 100%,from(#222),to(#333));background:-webkit-linear-gradient(top,#222,#333);background:-o-linear-gradient(top,#333,#222);background:-ms-linear-gradient(top,#333,#222);background:linear-gradient(top,#333,#222)}.vjs-default-skin .vjs-progress-holder{position:relative;cursor:pointer!important;padding:0;margin:0;height:1.0em;-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em;background:#111;background:-moz-linear-gradient(top,#111,#262626);background:-webkit-gradient(linear,0% 0,0% 100%,from(#111),to(#262626));background:-webkit-linear-gradient(top,#111,#262626);background:-o-linear-gradient(top,#111,#262626);background:-ms-linear-gradient(top,#111,#262626);background:linear-gradient(top,#111,#262626)}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress{position:absolute;display:block;height:1.0em;margin:0;padding:0;left:0;top:0;-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em}.vjs-default-skin .vjs-play-progress{background:#fff;background:-moz-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#fff),color-stop(50%,#d6d6d6),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:-o-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:-ms-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:#efefef;background:-moz-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#efefef),color-stop(50%,#f5f5f5),color-stop(50%,#dbdbdb),color-stop(100%,#f1f1f1));background:-webkit-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);background:-o-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);background:-ms-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#efefef',endColorstr='#f1f1f1',GradientType=0);background:linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%)}.vjs-default-skin .vjs-load-progress{opacity:.8;background:#666;background:-moz-linear-gradient(top,#666,#333);background:-webkit-gradient(linear,0% 0,0% 100%,from(#666),to(#333));background:-webkit-linear-gradient(top,#666,#333);background:-o-linear-gradient(top,#666,#333);background:-ms-linear-gradient(top,#666,#333);background:linear-gradient(top,#666,#333)}.vjs-default-skin div.vjs-seek-handle{position:absolute;width:16px;height:16px;margin-top:-0.3em;left:0;top:0;background:url('video-js.png') 0 -50px;-moz-border-radius:.8em;-webkit-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 2px 4px 0 #000;-moz-box-shadow:0 2px 4px 0 #000;box-shadow:0 2px 4px 0 #000}.vjs-default-skin .vjs-time-controls{position:absolute;right:0;height:1.0em;width:4.8em;top:-1.3em;border-bottom:1px solid #1f1f1f;border-top:1px solid #222;background-color:#333;font-size:1em;line-height:1.0em;font-weight:normal;font-family:Helvetica,Arial,sans-serif;background:#333;background:-moz-linear-gradient(top,#222,#333);background:-webkit-gradient(linear,0% 0,0% 100%,from(#222),to(#333));background:-webkit-linear-gradient(top,#222,#333);background:-o-linear-gradient(top,#333,#222);background:-ms-linear-gradient(top,#333,#222);background:linear-gradient(top,#333,#222)}.vjs-default-skin .vjs-current-time{left:0}.vjs-default-skin .vjs-duration{right:0;display:none}.vjs-default-skin .vjs-remaining-time{right:0}.vjs-time-divider{display:none}.vjs-default-skin .vjs-time-control{font-size:1em;line-height:1;font-weight:normal;font-family:Helvetica,Arial,sans-serif}.vjs-default-skin .vjs-time-control span{line-height:25px}.vjs-secondary-controls{float:right}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer!important;float:right}.vjs-default-skin .vjs-fullscreen-control div{width:16px;height:16px;background:url('video-js.png') -50px 0;margin:.5em auto 0}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control div{background:url('video-js.png') -75px 0}.vjs-default-skin .vjs-big-play-button{display:block;z-index:2;position:absolute;top:50%;left:50%;width:8.0em;height:8.0em;margin:-42px 0 0 -42px;text-align:center;vertical-align:center;cursor:pointer!important;border:.2em solid #fff;opacity:.95;-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;background:#454545;background:-moz-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#454545),color-stop(50%,#232323),color-stop(50%,#161616),color-stop(100%,#3f3f3f));background:-webkit-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);background:-o-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);background:-ms-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545',endColorstr='#3f3f3f',GradientType=0);background:linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);-webkit-box-shadow:4px 4px 8px #000;-moz-box-shadow:4px 4px 8px #000;box-shadow:4px 4px 8px #000}.vjs-default-skin div.vjs-big-play-button:hover{-webkit-box-shadow:0 0 80px #fff;-moz-box-shadow:0 0 80px #fff;box-shadow:0 0 80px #fff}.vjs-default-skin div.vjs-big-play-button span{position:absolute;top:50%;left:50%;display:block;width:35px;height:42px;margin:-20px 0 0 -15px;background:url('video-js.png') -100px 0}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;width:55px;height:55px;margin:-28px 0 0 -28px;-webkit-animation-name:rotatethis;-webkit-animation-duration:1s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear;-moz-animation-name:rotatethis;-moz-animation-duration:1s;-moz-animation-iteration-count:infinite;-moz-animation-timing-function:linear}@-webkit-keyframes rotatethis{0%{-webkit-transform:scale(0.6) rotate(0deg)}12.5%{-webkit-transform:scale(0.6) rotate(0deg)}12.51%{-webkit-transform:scale(0.6) rotate(45deg)}25%{-webkit-transform:scale(0.6) rotate(45deg)}25.01%{-webkit-transform:scale(0.6) rotate(90deg)}37.5%{-webkit-transform:scale(0.6) rotate(90deg)}37.51%{-webkit-transform:scale(0.6) rotate(135deg)}50%{-webkit-transform:scale(0.6) rotate(135deg)}50.01%{-webkit-transform:scale(0.6) rotate(180deg)}62.5%{-webkit-transform:scale(0.6) rotate(180deg)}62.51%{-webkit-transform:scale(0.6) rotate(225deg)}75%{-webkit-transform:scale(0.6) rotate(225deg)}75.01%{-webkit-transform:scale(0.6) rotate(270deg)}87.5%{-webkit-transform:scale(0.6) rotate(270deg)}87.51%{-webkit-transform:scale(0.6) rotate(315deg)}100%{-webkit-transform:scale(0.6) rotate(315deg)}}@-moz-keyframes rotatethis{0%{-moz-transform:scale(0.6) rotate(0deg)}12.5%{-moz-transform:scale(0.6) rotate(0deg)}12.51%{-moz-transform:scale(0.6) rotate(45deg)}25%{-moz-transform:scale(0.6) rotate(45deg)}25.01%{-moz-transform:scale(0.6) rotate(90deg)}37.5%{-moz-transform:scale(0.6) rotate(90deg)}37.51%{-moz-transform:scale(0.6) rotate(135deg)}50%{-moz-transform:scale(0.6) rotate(135deg)}50.01%{-moz-transform:scale(0.6) rotate(180deg)}62.5%{-moz-transform:scale(0.6) rotate(180deg)}62.51%{-moz-transform:scale(0.6) rotate(225deg)}75%{-moz-transform:scale(0.6) rotate(225deg)}75.01%{-moz-transform:scale(0.6) rotate(270deg)}87.5%{-moz-transform:scale(0.6) rotate(270deg)}87.51%{-moz-transform:scale(0.6) rotate(315deg)}100%{-moz-transform:scale(0.6) rotate(315deg)}}div.vjs-loading-spinner .ball1{opacity:.12;position:absolute;left:20px;top:0;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball2{opacity:.25;position:absolute;left:34px;top:6px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball3{opacity:.37;position:absolute;left:40px;top:20px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball4{opacity:.50;position:absolute;left:34px;top:34px;width:13px;height:13px;background:#fff;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:15px;border:1px solid #ccc}div.vjs-loading-spinner .ball5{opacity:.62;position:absolute;left:20px;top:40px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball6{opacity:.75;position:absolute;left:6px;top:34px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball7{opacity:.87;position:absolute;left:0;top:20px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball8{opacity:1.00;position:absolute;left:6px;top:6px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}.vjs-default-skin .vjs-menu-button{float:right;margin:.2em .5em 0 0;padding:0;width:3em;height:2em;cursor:pointer!important;border:1px solid #111;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;background:#4d4d4d;background:-moz-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#4d4d4d),color-stop(50%,#3f3f3f),color-stop(50%,#333),color-stop(100%,#252525));background:-webkit-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-o-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-ms-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%)}.vjs-default-skin .vjs-menu-button div{background:url('video-js.png') 0 -75px no-repeat;width:16px;height:16px;margin:.2em auto 0;padding:0}.vjs-default-skin .vjs-menu-button ul{display:none;opacity:.8;padding:0;margin:0;position:absolute;width:10em;bottom:2em;max-height:15em;left:-3.5em;background-color:#111;border:2px solid #333;-moz-border-radius:.7em;-webkit-border-radius:1em;border-radius:.5em;-webkit-box-shadow:0 2px 4px 0 #000;-moz-box-shadow:0 2px 4px 0 #000;box-shadow:0 2px 4px 0 #000;overflow:auto}.vjs-default-skin .vjs-menu-button:focus ul,.vjs-default-skin .vjs-menu-button:hover ul{display:block;list-style:none}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0 .3em 20px;line-height:1.4em;font-size:1.2em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-align:left}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{text-decoration:underline;background:url('video-js.png') -125px -50px no-repeat}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{background-color:#ccc;color:#111;outline:0}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em 0;color:#fff;font-weight:bold;cursor:default;background:#4d4d4d;background:-moz-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#4d4d4d),color-stop(50%,#3f3f3f),color-stop(50%,#333),color-stop(100%,#252525));background:-webkit-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-o-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-ms-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%)}.vjs-default-skin .vjs-captions-button div{background-position:-25px -75px}.vjs-default-skin .vjs-chapters-button div{background-position:-100px -75px}.vjs-default-skin .vjs-chapters-button ul{width:20em;left:-8.5em}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
VideoJS Default Styles (http://videojs.com)
|
3 |
+
Version GENERATED_AT_BUILD
|
4 |
+
*/
|
5 |
+
|
6 |
+
/*
|
7 |
+
REQUIRED STYLES (be careful overriding)
|
8 |
+
================================================================================ */
|
9 |
+
/* When loading the player, the video tag is replaced with a DIV,
|
10 |
+
that will hold the video tag or object tag for other playback methods.
|
11 |
+
The div contains the video playback element (Flash or HTML5) and controls, and sets the width and height of the video.
|
12 |
+
|
13 |
+
** If you want to add some kind of border/padding (e.g. a frame), or special positioning, use another containing element.
|
14 |
+
Otherwise you risk messing up control positioning and full window mode. **
|
15 |
+
*/
|
16 |
+
.video-js {
|
17 |
+
background-color: #000;
|
18 |
+
position: relative;
|
19 |
+
padding: 0;
|
20 |
+
/* Start with 10px for base font size so other dimensions can be em based and easily calculable. */
|
21 |
+
font-size: 10px;
|
22 |
+
/* Allow poster to be vertially aligned. */
|
23 |
+
vertical-align: middle;
|
24 |
+
/* display: table-cell; */ /*This works in Safari but not Firefox.*/
|
25 |
+
}
|
26 |
+
|
27 |
+
/* Playback technology elements expand to the width/height of the containing div.
|
28 |
+
<video> or <object> */
|
29 |
+
.video-js .vjs-tech {
|
30 |
+
position: absolute;
|
31 |
+
top: 0;
|
32 |
+
left: 0;
|
33 |
+
width: 100%;
|
34 |
+
height: 100%;
|
35 |
+
}
|
36 |
+
|
37 |
+
/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when checking fullScreenEnabled. */
|
38 |
+
.video-js:-moz-full-screen { position: absolute; }
|
39 |
+
|
40 |
+
/* Fullscreen Styles */
|
41 |
+
body.vjs-full-window {
|
42 |
+
padding: 0;
|
43 |
+
margin: 0;
|
44 |
+
height: 100%;
|
45 |
+
overflow-y: auto; /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
|
46 |
+
}
|
47 |
+
.video-js.vjs-fullscreen {
|
48 |
+
position: fixed;
|
49 |
+
overflow: hidden;
|
50 |
+
z-index: 1000;
|
51 |
+
left: 0;
|
52 |
+
top: 0;
|
53 |
+
bottom: 0;
|
54 |
+
right: 0;
|
55 |
+
width: 100% !important;
|
56 |
+
height: 100% !important;
|
57 |
+
_position: absolute; /* IE6 Full-window (underscore hack) */
|
58 |
+
}
|
59 |
+
.video-js:-webkit-full-screen {
|
60 |
+
width: 100% !important; height: 100% !important;
|
61 |
+
}
|
62 |
+
|
63 |
+
/* Poster Styles */
|
64 |
+
.vjs-poster {
|
65 |
+
background-repeat: no-repeat;
|
66 |
+
background-position: 50% 50%;
|
67 |
+
background-size: contain;
|
68 |
+
cursor: pointer;
|
69 |
+
height: 100%;
|
70 |
+
margin: 0;
|
71 |
+
padding: 0;
|
72 |
+
position: relative;
|
73 |
+
width: 100%;
|
74 |
+
}
|
75 |
+
.vjs-poster img {
|
76 |
+
display: block;
|
77 |
+
margin: 0 auto;
|
78 |
+
max-height: 100%;
|
79 |
+
padding: 0;
|
80 |
+
width: 100%;
|
81 |
+
}
|
82 |
+
|
83 |
+
/* Text Track Styles */
|
84 |
+
/* Overall track holder for both captions and subtitles */
|
85 |
+
.video-js .vjs-text-track-display {
|
86 |
+
text-align: center;
|
87 |
+
position: absolute;
|
88 |
+
bottom: 4em;
|
89 |
+
left: 1em; /* Leave padding on left and right */
|
90 |
+
right: 1em;
|
91 |
+
font-family: Arial, sans-serif;
|
92 |
+
}
|
93 |
+
/* Individual tracks */
|
94 |
+
.video-js .vjs-text-track {
|
95 |
+
display: none;
|
96 |
+
font-size: 1.4em;
|
97 |
+
text-align: center;
|
98 |
+
margin-bottom: 0.1em;
|
99 |
+
/* Transparent black background, or fallback to all black (oldIE) */
|
100 |
+
background: rgb(0, 0, 0); background: rgba(0, 0, 0, 0.50);
|
101 |
+
}
|
102 |
+
.video-js .vjs-subtitles { color: #fff; } /* Subtitles are white */
|
103 |
+
.video-js .vjs-captions { color: #fc6; } /* Captions are yellow */
|
104 |
+
.vjs-tt-cue { display: block; }
|
105 |
+
|
106 |
+
/* Fading sytles, used to fade control bar. */
|
107 |
+
.vjs-fade-in {
|
108 |
+
display: block !important;
|
109 |
+
visibility: visible; /* Needed to make sure things hide in older browsers too. */
|
110 |
+
opacity: 1;
|
111 |
+
|
112 |
+
-webkit-transition: visibility 0.1s, opacity 0.1s;
|
113 |
+
-moz-transition: visibility 0.1s, opacity 0.1s;
|
114 |
+
-ms-transition: visibility 0.1s, opacity 0.1s;
|
115 |
+
-o-transition: visibility 0.1s, opacity 0.1s;
|
116 |
+
transition: visibility 0.1s, opacity 0.1s;
|
117 |
+
}
|
118 |
+
.vjs-fade-out {
|
119 |
+
display: block !important;
|
120 |
+
visibility: hidden;
|
121 |
+
opacity: 0;
|
122 |
+
|
123 |
+
-webkit-transition: visibility 1.5s, opacity 1.5s;
|
124 |
+
-moz-transition: visibility 1.5s, opacity 1.5s;
|
125 |
+
-ms-transition: visibility 1.5s, opacity 1.5s;
|
126 |
+
-o-transition: visibility 1.5s, opacity 1.5s;
|
127 |
+
transition: visibility 1.5s, opacity 1.5s;
|
128 |
+
|
129 |
+
/* Wait a moment before fading out the control bar */
|
130 |
+
-webkit-transition-delay: 2s;
|
131 |
+
-moz-transition-delay: 2s;
|
132 |
+
-ms-transition-delay: 2s;
|
133 |
+
-o-transition-delay: 2s;
|
134 |
+
transition-delay: 2s;
|
135 |
+
}
|
136 |
+
/* Hide disabled or unsupported controls */
|
137 |
+
.vjs-default-skin .vjs-hidden { display: none; }
|
138 |
+
|
139 |
+
.vjs-lock-showing {
|
140 |
+
display: block !important;
|
141 |
+
opacity: 1;
|
142 |
+
visibility: visible;
|
143 |
+
}
|
144 |
+
|
145 |
+
/* DEFAULT SKIN (override in another file to create new skins)
|
146 |
+
================================================================================
|
147 |
+
Instead of editing this file, I recommend creating your own skin CSS file to be included after this file,
|
148 |
+
so you can upgrade to newer versions easier. You can remove all these styles by removing the 'vjs-default-skin' class from the tag. */
|
149 |
+
|
150 |
+
/* Base UI Component Classes
|
151 |
+
-------------------------------------------------------------------------------- */
|
152 |
+
@font-face{
|
153 |
+
font-family: 'VideoJS';
|
154 |
+
src: url('font/vjs.eot');
|
155 |
+
src: url('font/vjs.eot') format('embedded-opentype'),
|
156 |
+
url('font/vjs.woff') format('woff'),
|
157 |
+
url('font/vjs.ttf') format('truetype');
|
158 |
+
font-weight: normal;
|
159 |
+
font-style: normal;
|
160 |
+
}
|
161 |
+
|
162 |
+
.vjs-default-skin {
|
163 |
+
color: #ccc;
|
164 |
+
}
|
165 |
+
|
166 |
+
/* Slider - used for Volume bar and Seek bar */
|
167 |
+
.vjs-default-skin .vjs-slider {
|
168 |
+
outline: 0; /* Replace browser focus hightlight with handle highlight */
|
169 |
+
position: relative;
|
170 |
+
cursor: pointer;
|
171 |
+
padding: 0;
|
172 |
+
|
173 |
+
background: rgb(50, 50, 50); /* IE8- Fallback */
|
174 |
+
background: rgba(100, 100, 100, 0.5);
|
175 |
+
}
|
176 |
+
|
177 |
+
.vjs-default-skin .vjs-slider:focus {
|
178 |
+
background: rgb(70, 70, 70); /* IE8- Fallback */
|
179 |
+
background: rgba(100, 100, 100, 0.70);
|
180 |
+
|
181 |
+
-webkit-box-shadow: 0 0 2em rgba(255, 255, 255, 1);
|
182 |
+
-moz-box-shadow: 0 0 2em rgba(255, 255, 255, 1);
|
183 |
+
box-shadow: 0 0 2em rgba(255, 255, 255, 1);
|
184 |
+
}
|
185 |
+
|
186 |
+
.vjs-default-skin .vjs-slider-handle {
|
187 |
+
position: absolute;
|
188 |
+
/* Needed for IE6 */
|
189 |
+
left: 0;
|
190 |
+
top: 0;
|
191 |
+
}
|
192 |
+
|
193 |
+
.vjs-default-skin .vjs-slider-handle:before {
|
194 |
+
/*content: "\f111";*/ /* Circle icon = f111 */
|
195 |
+
content: "\e009"; /* Square icon */
|
196 |
+
font-family: VideoJS;
|
197 |
+
font-size: 1em;
|
198 |
+
line-height: 1;
|
199 |
+
text-align: center;
|
200 |
+
text-shadow: 0em 0em 1em #fff;
|
201 |
+
|
202 |
+
position: absolute;
|
203 |
+
top: 0;
|
204 |
+
left: 0;
|
205 |
+
|
206 |
+
/* Rotate the square icon to make a diamond */
|
207 |
+
-webkit-transform: rotate(-45deg);
|
208 |
+
-moz-transform: rotate(-45deg);
|
209 |
+
-ms-transform: rotate(-45deg);
|
210 |
+
-o-transform: rotate(-45deg);
|
211 |
+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
|
212 |
+
}
|
213 |
+
|
214 |
+
/* Control Bar
|
215 |
+
-------------------------------------------------------------------------------- */
|
216 |
+
/* The default control bar. Created by controls.js */
|
217 |
+
.vjs-default-skin .vjs-control-bar {
|
218 |
+
display: none; /* Start hidden */
|
219 |
+
position: absolute;
|
220 |
+
/* Distance from the bottom of the box/video. Keep 0. Use height to add more bottom margin. */
|
221 |
+
bottom: 0;
|
222 |
+
/* 100% width of player div */
|
223 |
+
left: 0;
|
224 |
+
right: 0;
|
225 |
+
/* Controls are absolutely position, so no padding necessary */
|
226 |
+
padding: 0;
|
227 |
+
margin: 0;
|
228 |
+
/* Height includes any margin you want above or below control items */
|
229 |
+
height: 3.0em;
|
230 |
+
background-color: rgb(0, 0, 0);
|
231 |
+
/* Slight blue so it can be seen more easily on black. */
|
232 |
+
background-color: rgba(7, 40, 50, 0.7);
|
233 |
+
/* Default font settings */
|
234 |
+
font-style: normal;
|
235 |
+
font-weight: normal;
|
236 |
+
font-family: Arial, sans-serif;
|
237 |
+
}
|
238 |
+
|
239 |
+
/* General styles for individual controls. */
|
240 |
+
.vjs-default-skin .vjs-control {
|
241 |
+
outline: none;
|
242 |
+
position: relative;
|
243 |
+
float: left;
|
244 |
+
text-align: center;
|
245 |
+
margin: 0;
|
246 |
+
padding: 0;
|
247 |
+
height: 3.0em;
|
248 |
+
width: 4em;
|
249 |
+
}
|
250 |
+
|
251 |
+
/* FontAwsome button icons */
|
252 |
+
.vjs-default-skin .vjs-control:before {
|
253 |
+
font-family: VideoJS;
|
254 |
+
font-size: 1.5em;
|
255 |
+
line-height: 2;
|
256 |
+
position: absolute;
|
257 |
+
top: 0;
|
258 |
+
left: 0;
|
259 |
+
width: 100%;
|
260 |
+
height: 100%;
|
261 |
+
text-align: center;
|
262 |
+
text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
|
263 |
+
}
|
264 |
+
|
265 |
+
/* Replacement for focus outline */
|
266 |
+
.vjs-default-skin .vjs-control:focus:before,
|
267 |
+
.vjs-default-skin .vjs-control:hover:before {
|
268 |
+
text-shadow: 0em 0em 1em rgba(255, 255, 255, 1);
|
269 |
+
}
|
270 |
+
|
271 |
+
.vjs-default-skin .vjs-control:focus { /* outline: 0; */ /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ }
|
272 |
+
|
273 |
+
/* Hide control text visually, but have it available for screenreaders: h5bp.com/v */
|
274 |
+
.vjs-default-skin .vjs-control-text { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
275 |
+
|
276 |
+
/* Play/Pause
|
277 |
+
-------------------------------------------------------------------------------- */
|
278 |
+
.vjs-default-skin .vjs-play-control {
|
279 |
+
width: 5em;
|
280 |
+
cursor: pointer;
|
281 |
+
}
|
282 |
+
.vjs-default-skin .vjs-play-control:before {
|
283 |
+
content: "\e001"; /* Play Icon */
|
284 |
+
}
|
285 |
+
.vjs-default-skin.vjs-playing .vjs-play-control:before {
|
286 |
+
content: "\e002"; /* Pause Icon */
|
287 |
+
}
|
288 |
+
|
289 |
+
/* Rewind
|
290 |
+
-------------------------------------------------------------------------------- */
|
291 |
+
/*.vjs-default-skin .vjs-rewind-control { width: 5em; cursor: pointer !important; }
|
292 |
+
.vjs-default-skin .vjs-rewind-control div { width: 19px; height: 16px; background: url('video-js.png'); margin: 0.5em auto 0; }
|
293 |
+
*/
|
294 |
+
|
295 |
+
/* Volume/Mute
|
296 |
+
-------------------------------------------------------------------------------- */
|
297 |
+
.vjs-default-skin .vjs-mute-control,
|
298 |
+
.vjs-default-skin .vjs-volume-menu-button {
|
299 |
+
cursor: pointer;
|
300 |
+
float: right;
|
301 |
+
}
|
302 |
+
.vjs-default-skin .vjs-mute-control:before,
|
303 |
+
.vjs-default-skin .vjs-volume-menu-button:before {
|
304 |
+
content: "\e006"; /* Full volume */
|
305 |
+
}
|
306 |
+
.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,
|
307 |
+
.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
|
308 |
+
content: "\e003"; /* No volume */
|
309 |
+
}
|
310 |
+
.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,
|
311 |
+
.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
|
312 |
+
content: "\e004"; /* Half volume */
|
313 |
+
}
|
314 |
+
.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,
|
315 |
+
.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
|
316 |
+
content: "\e005"; /* Full volume */
|
317 |
+
}
|
318 |
+
|
319 |
+
.vjs-default-skin .vjs-volume-control {
|
320 |
+
width: 5em;
|
321 |
+
float: right;
|
322 |
+
}
|
323 |
+
.vjs-default-skin .vjs-volume-bar {
|
324 |
+
width: 5em;
|
325 |
+
height: 0.6em;
|
326 |
+
margin: 1.1em auto 0;
|
327 |
+
}
|
328 |
+
|
329 |
+
.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content {
|
330 |
+
height: 2.9em;
|
331 |
+
}
|
332 |
+
|
333 |
+
.vjs-default-skin .vjs-volume-level {
|
334 |
+
position: absolute;
|
335 |
+
top: 0;
|
336 |
+
left: 0;
|
337 |
+
height: 0.5em;
|
338 |
+
|
339 |
+
background: #66A8CC
|
340 |
+
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC)
|
341 |
+
-50% 0 repeat;
|
342 |
+
}
|
343 |
+
.vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
|
344 |
+
width: 0.5em;
|
345 |
+
height: 0.5em;
|
346 |
+
}
|
347 |
+
|
348 |
+
.vjs-default-skin .vjs-volume-handle:before {
|
349 |
+
font-size: 0.9em;
|
350 |
+
top: -0.2em;
|
351 |
+
left: -0.2em;
|
352 |
+
|
353 |
+
width: 1em;
|
354 |
+
height: 1em;
|
355 |
+
}
|
356 |
+
|
357 |
+
.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
|
358 |
+
width: 6em;
|
359 |
+
left: -4em;
|
360 |
+
}
|
361 |
+
|
362 |
+
/*.vjs-default-skin .vjs-menu-button .vjs-volume-control {
|
363 |
+
height: 1.5em;
|
364 |
+
}*/
|
365 |
+
|
366 |
+
/* Progress
|
367 |
+
-------------------------------------------------------------------------------- */
|
368 |
+
.vjs-default-skin .vjs-progress-control {
|
369 |
+
position: absolute;
|
370 |
+
left: 0;
|
371 |
+
right: 0;
|
372 |
+
width: auto;
|
373 |
+
font-size: 0.3em;
|
374 |
+
height: 1em;
|
375 |
+
/* Set above the rest of the controls. */
|
376 |
+
top: -1em;
|
377 |
+
|
378 |
+
/* Shrink the bar slower than it grows. */
|
379 |
+
-webkit-transition: top 0.4s, height 0.4s, font-size 0.4s, -webkit-transform 0.4s;
|
380 |
+
-moz-transition: top 0.4s, height 0.4s, font-size 0.4s, -moz-transform 0.4s;
|
381 |
+
-o-transition: top 0.4s, height 0.4s, font-size 0.4s, -o-transform 0.4s;
|
382 |
+
transition: top 0.4s, height 0.4s, font-size 0.4s, transform 0.4s;
|
383 |
+
|
384 |
+
}
|
385 |
+
|
386 |
+
/* On hover, make the progress bar grow to something that's more clickable.
|
387 |
+
This simply changes the overall font for the progress bar, and this
|
388 |
+
updates both the em-based widths and heights, as wells as the icon font */
|
389 |
+
.vjs-default-skin:hover .vjs-progress-control {
|
390 |
+
font-size: .9em;
|
391 |
+
|
392 |
+
/* Even though we're not changing the top/height, we need to include them in
|
393 |
+
the transition so they're handled correctly. */
|
394 |
+
-webkit-transition: top 0.2s, height 0.2s, font-size 0.2s, -webkit-transform 0.2s;
|
395 |
+
-moz-transition: top 0.2s, height 0.2s, font-size 0.2s, -moz-transform 0.2s;
|
396 |
+
-o-transition: top 0.2s, height 0.2s, font-size 0.2s, -o-transform 0.2s;
|
397 |
+
transition: top 0.2s, height 0.2s, font-size 0.2s, transform 0.2s;
|
398 |
+
}
|
399 |
+
|
400 |
+
/* Box containing play and load progresses. Also acts as seek scrubber. */
|
401 |
+
.vjs-default-skin .vjs-progress-holder {
|
402 |
+
/* Placement within the progress control item */
|
403 |
+
height: 100%;
|
404 |
+
}
|
405 |
+
|
406 |
+
/* Progress Bars */
|
407 |
+
.vjs-default-skin .vjs-progress-holder .vjs-play-progress,
|
408 |
+
.vjs-default-skin .vjs-progress-holder .vjs-load-progress {
|
409 |
+
position: absolute;
|
410 |
+
display: block;
|
411 |
+
height: 100%;
|
412 |
+
margin: 0;
|
413 |
+
padding: 0;
|
414 |
+
/* Needed for IE6 */
|
415 |
+
left: 0;
|
416 |
+
top: 0;
|
417 |
+
}
|
418 |
+
|
419 |
+
.vjs-default-skin .vjs-play-progress {
|
420 |
+
/*
|
421 |
+
Using a data URI to create the white diagonal lines with a transparent
|
422 |
+
background. Surprising works in IE8.
|
423 |
+
Created using http://www.patternify.com
|
424 |
+
Changing the first color value will change the bar color.
|
425 |
+
Also using a paralax effect to make the lines move backwards.
|
426 |
+
The -50% left position makes that happen.
|
427 |
+
*/
|
428 |
+
background: #66A8CC
|
429 |
+
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC)
|
430 |
+
-50% 0 repeat;
|
431 |
+
}
|
432 |
+
.vjs-default-skin .vjs-load-progress {
|
433 |
+
background: rgb(100, 100, 100); /* IE8- Fallback */
|
434 |
+
background: rgba(255, 255, 255, 0.4);
|
435 |
+
}
|
436 |
+
|
437 |
+
.vjs-default-skin .vjs-seek-handle {
|
438 |
+
width: 1.5em;
|
439 |
+
height: 100%;
|
440 |
+
}
|
441 |
+
|
442 |
+
.vjs-default-skin .vjs-seek-handle:before {
|
443 |
+
padding-top: 0.1em; /* Minor adjustment */
|
444 |
+
}
|
445 |
+
|
446 |
+
/* Time Display
|
447 |
+
-------------------------------------------------------------------------------- */
|
448 |
+
.vjs-default-skin .vjs-time-controls {
|
449 |
+
font-size: 1em;
|
450 |
+
/* Align vertically by making the line height the same as the control bar */
|
451 |
+
line-height: 3em;
|
452 |
+
}
|
453 |
+
.vjs-default-skin .vjs-current-time { float: left; }
|
454 |
+
.vjs-default-skin .vjs-duration { float: left; }
|
455 |
+
/* Remaining time is in the HTML, but not included in default design */
|
456 |
+
.vjs-default-skin .vjs-remaining-time { display: none; float: left; }
|
457 |
+
.vjs-time-divider { float: left; line-height: 3em; }
|
458 |
+
|
459 |
+
/* Fullscreen
|
460 |
+
-------------------------------------------------------------------------------- */
|
461 |
+
.vjs-default-skin .vjs-fullscreen-control {
|
462 |
+
width: 3.8em;
|
463 |
+
cursor: pointer;
|
464 |
+
float: right;
|
465 |
+
}
|
466 |
+
.vjs-default-skin .vjs-fullscreen-control:before {
|
467 |
+
content: "\e000"; /* Enter full screen */
|
468 |
+
}
|
469 |
+
.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
|
470 |
+
content: "\e00b"; /* Exit full screen */
|
471 |
+
}
|
472 |
+
|
473 |
+
/* Big Play Button (at start)
|
474 |
+
---------------------------------------------------------*/
|
475 |
+
.vjs-default-skin .vjs-big-play-button {
|
476 |
+
display: block;
|
477 |
+
z-index: 2;
|
478 |
+
position: absolute;
|
479 |
+
top: 2em;
|
480 |
+
left: 2em;
|
481 |
+
width: 12.0em;
|
482 |
+
height: 8.0em;
|
483 |
+
margin: 0;
|
484 |
+
text-align: center;
|
485 |
+
vertical-align: middle;
|
486 |
+
cursor: pointer;
|
487 |
+
opacity: 1;
|
488 |
+
|
489 |
+
/* Need a slightly gray bg so it can be seen on black backgrounds */
|
490 |
+
background-color: rgb(40, 40, 40);
|
491 |
+
background-color: rgba(7, 40, 50, 0.7);
|
492 |
+
|
493 |
+
border: 0.3em solid rgb(50, 50, 50);
|
494 |
+
border-color: rgba(255, 255, 255, 0.25);
|
495 |
+
|
496 |
+
-webkit-border-radius: 25px;
|
497 |
+
-moz-border-radius: 25px;
|
498 |
+
border-radius: 25px;
|
499 |
+
|
500 |
+
-webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
|
501 |
+
-moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
|
502 |
+
box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
|
503 |
+
|
504 |
+
-webkit-transition: border 0.4s, -webkit-box-shadow 0.4s, -webkit-transform 0.4s;
|
505 |
+
-moz-transition: border 0.4s, -moz-box-shadow 0.4s, -moz-transform 0.4s;
|
506 |
+
-o-transition: border 0.4s, -o-box-shadow 0.4s, -o-transform 0.4s;
|
507 |
+
transition: border 0.4s, box-shadow 0.4s, transform 0.4s;
|
508 |
+
}
|
509 |
+
|
510 |
+
.vjs-default-skin:hover .vjs-big-play-button,
|
511 |
+
.vjs-default-skin .vjs-big-play-button:focus {
|
512 |
+
outline: 0;
|
513 |
+
border-color: rgb(255, 255, 255);
|
514 |
+
border-color: rgba(255, 255, 255, 1);
|
515 |
+
/* IE8 needs a non-glow hover state */
|
516 |
+
background-color: rgb(80, 80, 80);
|
517 |
+
background-color: rgba(50, 50, 50, 0.75);
|
518 |
+
|
519 |
+
-webkit-box-shadow: 0 0 3em #fff;
|
520 |
+
-moz-box-shadow: 0 0 3em #fff;
|
521 |
+
box-shadow: 0 0 3em #fff;
|
522 |
+
|
523 |
+
-webkit-transition: border 0s, -webkit-box-shadow 0s, -webkit-transform 0s;
|
524 |
+
-moz-transition: border 0s, -moz-box-shadow 0s, -moz-transform 0s;
|
525 |
+
-o-transition: border 0s, -o-box-shadow 0s, -o-transform 0s;
|
526 |
+
transition: border 0s, box-shadow 0s, transform 0s;
|
527 |
+
}
|
528 |
+
|
529 |
+
.vjs-default-skin .vjs-big-play-button:before {
|
530 |
+
content: "\e001"; /* Play icon */
|
531 |
+
font-family: VideoJS;
|
532 |
+
font-size: 3em;
|
533 |
+
line-height: 2.66;
|
534 |
+
text-shadow: 0.05em 0.05em 0.1em #000;
|
535 |
+
text-align: center; /* Needed for IE8 */
|
536 |
+
|
537 |
+
position: absolute;
|
538 |
+
left: 0;
|
539 |
+
width: 100%;
|
540 |
+
height: 100%;
|
541 |
+
}
|
542 |
+
|
543 |
+
/* Loading Spinner
|
544 |
+
---------------------------------------------------------*/
|
545 |
+
.vjs-loading-spinner {
|
546 |
+
display: none;
|
547 |
+
position: absolute;
|
548 |
+
top: 50%;
|
549 |
+
left: 50%;
|
550 |
+
|
551 |
+
font-size: 5em;
|
552 |
+
line-height: 1;
|
553 |
+
|
554 |
+
width: 1em;
|
555 |
+
height: 1em;
|
556 |
+
|
557 |
+
margin-left: -0.5em;
|
558 |
+
margin-top: -0.5em;
|
559 |
+
|
560 |
+
opacity: 0.75;
|
561 |
+
|
562 |
+
-webkit-animation: spin 1.5s infinite linear;
|
563 |
+
-moz-animation: spin 1.5s infinite linear;
|
564 |
+
-o-animation: spin 1.5s infinite linear;
|
565 |
+
animation: spin 1.5s infinite linear;
|
566 |
+
}
|
567 |
+
|
568 |
+
.vjs-default-skin .vjs-loading-spinner:before {
|
569 |
+
content: "\e00a"; /* Loading spinner icon */
|
570 |
+
font-family: VideoJS;
|
571 |
+
|
572 |
+
position: absolute;
|
573 |
+
width: 1em;
|
574 |
+
height: 1em;
|
575 |
+
text-align: center;
|
576 |
+
text-shadow: 0em 0em 0.1em #000;
|
577 |
+
}
|
578 |
+
|
579 |
+
/* Add a gradient to the spinner by overlaying another copy.
|
580 |
+
Text gradient plus a text shadow doesn't work
|
581 |
+
and `background-clip: text` only works in Webkit. */
|
582 |
+
.vjs-default-skin .vjs-loading-spinner:after {
|
583 |
+
content: "\e00a"; /* Loading spinner icon */
|
584 |
+
font-family: VideoJS;
|
585 |
+
|
586 |
+
position: absolute;
|
587 |
+
width: 1em;
|
588 |
+
height: 1em;
|
589 |
+
text-align: center;
|
590 |
+
|
591 |
+
-webkit-background-clip: text;
|
592 |
+
-webkit-text-fill-color: transparent;
|
593 |
+
}
|
594 |
+
|
595 |
+
@-moz-keyframes spin {
|
596 |
+
0% { -moz-transform: rotate(0deg); }
|
597 |
+
100% { -moz-transform: rotate(359deg); }
|
598 |
+
}
|
599 |
+
@-webkit-keyframes spin {
|
600 |
+
0% { -webkit-transform: rotate(0deg); }
|
601 |
+
100% { -webkit-transform: rotate(359deg); }
|
602 |
+
}
|
603 |
+
@-o-keyframes spin {
|
604 |
+
0% { -o-transform: rotate(0deg); }
|
605 |
+
100% { -o-transform: rotate(359deg); }
|
606 |
+
}
|
607 |
+
@-ms-keyframes spin {
|
608 |
+
0% { -ms-transform: rotate(0deg); }
|
609 |
+
100% { -ms-transform: rotate(359deg); }
|
610 |
+
}
|
611 |
+
@keyframes spin {
|
612 |
+
0% { transform: rotate(0deg); }
|
613 |
+
100% { transform: rotate(359deg); }
|
614 |
+
}
|
615 |
+
|
616 |
+
/* Menu Buttons (Captions/Subtitles/etc.)
|
617 |
+
-------------------------------------------------------------------------------- */
|
618 |
+
.vjs-default-skin .vjs-menu-button {
|
619 |
+
float: right;
|
620 |
+
cursor: pointer;
|
621 |
+
}
|
622 |
+
|
623 |
+
.vjs-default-skin .vjs-menu {
|
624 |
+
display: none;
|
625 |
+
position: absolute;
|
626 |
+
bottom: 0;
|
627 |
+
left: 0em; /* (Width of vjs-menu - width of button) / 2 */
|
628 |
+
width: 0em;
|
629 |
+
height: 0em;
|
630 |
+
margin-bottom: 3em;
|
631 |
+
|
632 |
+
border-left: 2em solid transparent;
|
633 |
+
border-right: 2em solid transparent;
|
634 |
+
|
635 |
+
border-top: 1.55em solid rgb(0, 0, 0); /* Same top as ul bottom */
|
636 |
+
border-top-color: rgba(7, 40, 50, 0.5); /* Same as ul background */
|
637 |
+
}
|
638 |
+
|
639 |
+
/* Button Pop-up Menu */
|
640 |
+
.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
|
641 |
+
display: block;
|
642 |
+
padding: 0; margin: 0;
|
643 |
+
position: absolute;
|
644 |
+
width: 10em;
|
645 |
+
bottom: 1.5em; /* Same bottom as vjs-menu border-top */
|
646 |
+
max-height: 15em;
|
647 |
+
overflow: auto;
|
648 |
+
|
649 |
+
left: -5em; /* Width of menu - width of button / 2 */
|
650 |
+
|
651 |
+
background-color: rgb(0, 0, 0);
|
652 |
+
background-color: rgba(7, 40, 50, 0.7);
|
653 |
+
|
654 |
+
-webkit-box-shadow: -20px -20px 0px rgba(255, 255, 255, 0.5);
|
655 |
+
-moz-box-shadow: 0 0 1em rgba(255, 255, 255, 0.5);
|
656 |
+
box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
657 |
+
}
|
658 |
+
|
659 |
+
/*.vjs-default-skin .vjs-menu-button:focus ul,*/ /* This is not needed because keyboard accessibility for the caption button is not handled with the focus any more. */
|
660 |
+
.vjs-default-skin .vjs-menu-button:hover .vjs-menu {
|
661 |
+
display: block;
|
662 |
+
}
|
663 |
+
.vjs-default-skin .vjs-menu-button ul li {
|
664 |
+
list-style: none;
|
665 |
+
margin: 0;
|
666 |
+
padding: 0.3em 0 0.3em 0;
|
667 |
+
line-height: 1.4em;
|
668 |
+
font-size: 1.2em;
|
669 |
+
font-weight: normal;
|
670 |
+
text-align: center;
|
671 |
+
text-transform: lowercase;
|
672 |
+
}
|
673 |
+
.vjs-default-skin .vjs-menu-button ul li.vjs-selected {
|
674 |
+
background-color: #000;
|
675 |
+
}
|
676 |
+
.vjs-default-skin .vjs-menu-button ul li:focus,
|
677 |
+
.vjs-default-skin .vjs-menu-button ul li:hover,
|
678 |
+
.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,
|
679 |
+
.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
|
680 |
+
background-color: rgb(255, 255, 255);
|
681 |
+
background-color: rgba(255, 255, 255, 0.75);
|
682 |
+
color: #111;
|
683 |
+
outline: 0;
|
684 |
+
|
685 |
+
-webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
686 |
+
-moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
687 |
+
box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
688 |
+
}
|
689 |
+
.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
|
690 |
+
text-align: center;
|
691 |
+
text-transform: uppercase;
|
692 |
+
font-size: 1em;
|
693 |
+
line-height: 2em;
|
694 |
+
padding: 0;
|
695 |
+
margin: 0 0 0.3em 0;
|
696 |
+
font-weight: bold;
|
697 |
+
cursor: default;
|
698 |
+
}
|
699 |
+
|
700 |
+
/* Subtitles Button */
|
701 |
+
.vjs-default-skin .vjs-subtitles-button:before { content: "\e00c"; }
|
702 |
+
|
703 |
+
/* There's unfortunately no CC button in FontAwesome, so we need
|
704 |
+
to manually create one. Please +1 the fontawesome request.
|
705 |
+
https://github.com/FortAwesome/Font-Awesome/issues/968 */
|
706 |
+
.vjs-default-skin .vjs-captions-button {
|
707 |
+
font-size: 1em; /* Font icons are 1.5em */
|
708 |
+
}
|
709 |
+
.vjs-default-skin .vjs-captions-button:before {
|
710 |
+
content: "\e008";
|
711 |
+
font-family: VideoJS;
|
712 |
+
font-size: 1.5em;
|
713 |
+
line-height: 2;
|
714 |
+
position: absolute;
|
715 |
+
top: 0;
|
716 |
+
left: 0;
|
717 |
+
width: 100%;
|
718 |
+
height: 100%;
|
719 |
+
text-align: center;
|
720 |
+
text-shadow: none;
|
721 |
+
}
|
722 |
+
|
723 |
+
|
724 |
+
/* Replacement for focus outline */
|
725 |
+
.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,
|
726 |
+
.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
|
727 |
+
-webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
728 |
+
-moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
729 |
+
box-shadow: 0 0 1em rgba(255, 255, 255, 1);
|
730 |
+
}
|
Binary file
|
Binary file
|
@@ -1,21 +1,121 @@
|
|
1 |
-
/*!
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
(
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
(function(window,undefined){var document=window.document;document.createElement("video");document.createElement("audio");var VideoJS=function(id,addOptions,ready){var tag;if(typeof id=="string"){if(id.indexOf("#")===0){id=id.slice(1)}if(_V_.players[id]){return _V_.players[id]}else{tag=_V_.el(id)}}else{tag=id}if(!tag||!tag.nodeName){throw new TypeError("The element or ID supplied is not valid. (VideoJS)")}return tag.player||new _V_.Player(tag,addOptions,ready)},_V_=VideoJS,CDN_VERSION="3.2";VideoJS.players={};VideoJS.options={techOrder:["html5","flash"],html5:{},flash:{swf:"http://vjs.zencdn.net/c/video-js.swf"},width:"auto",height:"auto",defaultVolume:0,components:{posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}}};if(CDN_VERSION!="GENERATED_CDN_VSN"){_V_.options.flash.swf="http://vjs.zencdn.net/"+CDN_VERSION+"/video-js.swf"}_V_.merge=function(obj1,obj2,safe){if(!obj2){obj2={}}for(var attrname in obj2){if(obj2.hasOwnProperty(attrname)&&(!safe||!obj1.hasOwnProperty(attrname))){obj1[attrname]=obj2[attrname]}}return obj1};_V_.extend=function(obj){this.merge(this,obj,true)};_V_.extend({tech:{},controlSets:{},isIE:function(){return !+"\v1"},isFF:function(){return !!_V_.ua.match("Firefox")},isIPad:function(){return navigator.userAgent.match(/iPad/i)!==null},isIPhone:function(){return navigator.userAgent.match(/iPhone/i)!==null},isIOS:function(){return VideoJS.isIPhone()||VideoJS.isIPad()},iOSVersion:function(){var match=navigator.userAgent.match(/OS (\d+)_/i);if(match&&match[1]){return match[1]}},isAndroid:function(){return navigator.userAgent.match(/Android.*AppleWebKit/i)!==null},androidVersion:function(){var match=navigator.userAgent.match(/Android (\d+)\./i);if(match&&match[1]){return match[1]}},testVid:document.createElement("video"),ua:navigator.userAgent,support:{},each:function(arr,fn){if(!arr||arr.length===0){return}for(var i=0,j=arr.length;i<j;i++){fn.call(this,arr[i],i)}},eachProp:function(obj,fn){if(!obj){return}for(var name in obj){if(obj.hasOwnProperty(name)){fn.call(this,name,obj[name])}}},el:function(id){return document.getElementById(id)},createElement:function(tagName,attributes){var el=document.createElement(tagName),attrname;for(attrname in attributes){if(attributes.hasOwnProperty(attrname)){if(attrname.indexOf("-")!==-1){el.setAttribute(attrname,attributes[attrname])}else{el[attrname]=attributes[attrname]}}}return el},insertFirst:function(node,parent){if(parent.firstChild){parent.insertBefore(node,parent.firstChild)}else{parent.appendChild(node)}},addClass:function(element,classToAdd){if((" "+element.className+" ").indexOf(" "+classToAdd+" ")==-1){element.className=element.className===""?classToAdd:element.className+" "+classToAdd}},removeClass:function(element,classToRemove){if(element.className.indexOf(classToRemove)==-1){return}var classNames=element.className.split(" ");classNames.splice(classNames.indexOf(classToRemove),1);element.className=classNames.join(" ")},remove:function(item,array){if(!array){return}var i=array.indexOf(item);if(i!=-1){return array.splice(i,1)}},blockTextSelection:function(){document.body.focus();document.onselectstart=function(){return false}},unblockTextSelection:function(){document.onselectstart=function(){return true}},formatTime:function(seconds,guide){guide=guide||seconds;var s=Math.floor(seconds%60),m=Math.floor(seconds/60%60),h=Math.floor(seconds/3600),gm=Math.floor(guide/60%60),gh=Math.floor(guide/3600);h=(h>0||gh>0)?h+":":"";m=(((h||gm>=10)&&m<10)?"0"+m:m)+":";s=(s<10)?"0"+s:s;return h+m+s},uc:function(string){return string.charAt(0).toUpperCase()+string.slice(1)},getRelativePosition:function(x,relativeElement){return Math.max(0,Math.min(1,(x-_V_.findPosX(relativeElement))/relativeElement.offsetWidth))},getComputedStyleValue:function(element,style){return window.getComputedStyle(element,null).getPropertyValue(style)},trim:function(string){return string.toString().replace(/^\s+/,"").replace(/\s+$/,"")},round:function(num,dec){if(!dec){dec=0}return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec)},isEmpty:function(object){for(var prop in object){return false}return true},createTimeRange:function(start,end){return{length:1,start:function(){return start},end:function(){return end}}},cache:{},guid:1,expando:"vdata"+(new Date).getTime(),getData:function(elem){var id=elem[_V_.expando];if(!id){id=elem[_V_.expando]=_V_.guid++;_V_.cache[id]={}}return _V_.cache[id]},removeData:function(elem){var id=elem[_V_.expando];if(!id){return}delete _V_.cache[id];try{delete elem[_V_.expando]}catch(e){if(elem.removeAttribute){elem.removeAttribute(_V_.expando)}else{elem[_V_.expando]=null}}},proxy:function(context,fn,uid){if(!fn.guid){fn.guid=_V_.guid++}var ret=function(){return fn.apply(context,arguments)};ret.guid=(uid)?uid+"_"+fn.guid:fn.guid;return ret},get:function(url,onSuccess,onError){var local=(url.indexOf("file:")==0||(window.location.href.indexOf("file:")==0&&url.indexOf("http:")==-1));if(typeof XMLHttpRequest=="undefined"){XMLHttpRequest=function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(f){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(g){}throw new Error("This browser does not support XMLHttpRequest.")}}var request=new XMLHttpRequest();try{request.open("GET",url)}catch(e){_V_.log("VideoJS XMLHttpRequest (open)",e);return false}request.onreadystatechange=_V_.proxy(this,function(){if(request.readyState==4){if(request.status==200||local&&request.status==0){onSuccess(request.responseText)}else{if(onError){onError()}}}});try{request.send()}catch(e){_V_.log("VideoJS XMLHttpRequest (send)",e);if(onError){onError(e)}}},setLocalStorage:function(key,value){var localStorage=window.localStorage||false;if(!localStorage){return}try{localStorage[key]=value}catch(e){if(e.code==22||e.code==1014){_V_.log("LocalStorage Full (VideoJS)",e)}else{_V_.log("LocalStorage Error (VideoJS)",e)}}},getAbsoluteURL:function(url){if(!url.match(/^https?:\/\//)){url=_V_.createElement("div",{innerHTML:'<a href="'+url+'">x</a>'}).firstChild.href}return url}});_V_.log=function(){_V_.log.history=_V_.log.history||[];_V_.log.history.push(arguments);if(window.console){arguments.callee=arguments.callee.caller;var newarr=[].slice.call(arguments);(typeof console.log==="object"?_V_.log.apply.call(console.log,console,newarr):console.log.apply(console,newarr))}};(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try{console.log();return window.console}catch(err){return window.console={}}})());if("getBoundingClientRect" in document.documentElement){_V_.findPosX=function(el){var box;try{box=el.getBoundingClientRect()}catch(e){}if(!box){return 0}var docEl=document.documentElement,body=document.body,clientLeft=docEl.clientLeft||body.clientLeft||0,scrollLeft=window.pageXOffset||body.scrollLeft,left=box.left+scrollLeft-clientLeft;return left}}else{_V_.findPosX=function(el){var curleft=el.offsetLeft;while(el=obj.offsetParent){if(el.className.indexOf("video-js")==-1){}else{}curleft+=el.offsetLeft}return curleft}}(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;_V_.Class=function(){};_V_.Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret}})(name,prop[name]):prop[name]}function Class(){if(!initializing&&this.init){return this.init.apply(this,arguments)}else{if(!initializing){return arguments.callee.prototype.init()}}}Class.prototype=prototype;Class.constructor=Class;Class.extend=arguments.callee;return Class}})();_V_.Component=_V_.Class.extend({init:function(player,options){this.player=player;options=this.options=_V_.merge(this.options||{},options);if(options.el){this.el=options.el}else{this.el=this.createElement()}this.initComponents()},destroy:function(){},createElement:function(type,attrs){return _V_.createElement(type||"div",attrs)},buildCSSClass:function(){return""},initComponents:function(){var options=this.options;if(options&&options.components){this.eachProp(options.components,function(name,opts){var tempAdd=this.proxy(function(){this[name]=this.addComponent(name,opts)});if(opts.loadEvent){this.one(opts.loadEvent,tempAdd)}else{tempAdd()}})}},addComponent:function(name,options){var component,componentClass;if(typeof name=="string"){options=options||{};componentClass=options.componentClass||_V_.uc(name);component=new _V_[componentClass](this.player||this,options)}else{component=name}this.el.appendChild(component.el);return component},removeComponent:function(component){this.el.removeChild(component.el)},show:function(){this.el.style.display="block"},hide:function(){this.el.style.display="none"},fadeIn:function(){this.removeClass("vjs-fade-out");this.addClass("vjs-fade-in")},fadeOut:function(){this.removeClass("vjs-fade-in");this.addClass("vjs-fade-out")},lockShowing:function(){var style=this.el.style;style.display="block";style.opacity=1;style.visiblity="visible"},unlockShowing:function(){var style=this.el.style;style.display="";style.opacity="";style.visiblity=""},addClass:function(classToAdd){_V_.addClass(this.el,classToAdd)},removeClass:function(classToRemove){_V_.removeClass(this.el,classToRemove)},addEvent:function(type,fn,uid){return _V_.addEvent(this.el,type,_V_.proxy(this,fn))},removeEvent:function(type,fn){return _V_.removeEvent(this.el,type,fn)},triggerEvent:function(type,e){return _V_.triggerEvent(this.el,type,e)},one:function(type,fn){_V_.one(this.el,type,_V_.proxy(this,fn))},ready:function(fn){if(!fn){return this}if(this.isReady){fn.call(this)}else{if(this.readyQueue===undefined){this.readyQueue=[]}this.readyQueue.push(fn)}return this},triggerReady:function(){this.isReady=true;if(this.readyQueue&&this.readyQueue.length>0){this.each(this.readyQueue,function(fn){fn.call(this)});this.readyQueue=[];this.triggerEvent("ready")}},each:function(arr,fn){_V_.each.call(this,arr,fn)},eachProp:function(obj,fn){_V_.eachProp.call(this,obj,fn)},extend:function(obj){_V_.merge(this,obj)},proxy:function(fn,uid){return _V_.proxy(this,fn,uid)}});_V_.Control=_V_.Component.extend({buildCSSClass:function(){return"vjs-control "+this._super()}});_V_.ControlBar=_V_.Component.extend({options:{loadEvent:"play",components:{playToggle:{},fullscreenToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},volumeControl:{},muteToggle:{}}},init:function(player,options){this._super(player,options);player.addEvent("play",this.proxy(function(){this.fadeIn();this.player.addEvent("mouseover",this.proxy(this.fadeIn));this.player.addEvent("mouseout",this.proxy(this.fadeOut))}))},createElement:function(){return _V_.createElement("div",{className:"vjs-controls"})},fadeIn:function(){this._super();this.player.triggerEvent("controlsvisible")},fadeOut:function(){this._super();this.player.triggerEvent("controlshidden")},lockShowing:function(){this.el.style.opacity="1"}});_V_.Button=_V_.Control.extend({init:function(player,options){this._super(player,options);this.addEvent("click",this.onClick);this.addEvent("focus",this.onFocus);this.addEvent("blur",this.onBlur)},createElement:function(type,attrs){attrs=_V_.merge({className:this.buildCSSClass(),innerHTML:'<div><span class="vjs-control-text">'+(this.buttonText||"Need Text")+"</span></div>",role:"button",tabIndex:0},attrs);return this._super(type,attrs)},onClick:function(){},onFocus:function(){_V_.addEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))},onKeyPress:function(event){if(event.which==32||event.which==13){event.preventDefault();this.onClick()}},onBlur:function(){_V_.removeEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))}});_V_.PlayButton=_V_.Button.extend({buttonText:"Play",buildCSSClass:function(){return"vjs-play-button "+this._super()},onClick:function(){this.player.play()}});_V_.PauseButton=_V_.Button.extend({buttonText:"Pause",buildCSSClass:function(){return"vjs-pause-button "+this._super()},onClick:function(){this.player.pause()}});_V_.PlayToggle=_V_.Button.extend({buttonText:"Play",init:function(player,options){this._super(player,options);player.addEvent("play",_V_.proxy(this,this.onPlay));player.addEvent("pause",_V_.proxy(this,this.onPause))},buildCSSClass:function(){return"vjs-play-control "+this._super()},onClick:function(){if(this.player.paused()){this.player.play()}else{this.player.pause()}},onPlay:function(){_V_.removeClass(this.el,"vjs-paused");_V_.addClass(this.el,"vjs-playing")},onPause:function(){_V_.removeClass(this.el,"vjs-playing");_V_.addClass(this.el,"vjs-paused")}});_V_.FullscreenToggle=_V_.Button.extend({buttonText:"Fullscreen",buildCSSClass:function(){return"vjs-fullscreen-control "+this._super()},onClick:function(){if(!this.player.isFullScreen){this.player.requestFullScreen()}else{this.player.cancelFullScreen()}}});_V_.BigPlayButton=_V_.Button.extend({init:function(player,options){this._super(player,options);player.addEvent("play",_V_.proxy(this,this.hide));player.addEvent("ended",_V_.proxy(this,this.show))},createElement:function(){return this._super("div",{className:"vjs-big-play-button",innerHTML:"<span></span>"})},onClick:function(){if(this.player.currentTime()){this.player.currentTime(0)}this.player.play()}});_V_.LoadingSpinner=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("canplay",_V_.proxy(this,this.hide));player.addEvent("canplaythrough",_V_.proxy(this,this.hide));player.addEvent("playing",_V_.proxy(this,this.hide));player.addEvent("seeking",_V_.proxy(this,this.show));player.addEvent("error",_V_.proxy(this,this.show));player.addEvent("waiting",_V_.proxy(this,this.show))},createElement:function(){var classNameSpinner,innerHtmlSpinner;if(typeof this.player.el.style.WebkitBorderRadius=="string"||typeof this.player.el.style.MozBorderRadius=="string"||typeof this.player.el.style.KhtmlBorderRadius=="string"||typeof this.player.el.style.borderRadius=="string"){classNameSpinner="vjs-loading-spinner";innerHtmlSpinner="<div class='ball1'></div><div class='ball2'></div><div class='ball3'></div><div class='ball4'></div><div class='ball5'></div><div class='ball6'></div><div class='ball7'></div><div class='ball8'></div>"}else{classNameSpinner="vjs-loading-spinner-fallback";innerHtmlSpinner=""}return this._super("div",{className:classNameSpinner,innerHTML:innerHtmlSpinner})}});_V_.CurrentTimeDisplay=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("timeupdate",_V_.proxy(this,this.updateContent))},createElement:function(){var el=this._super("div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.content=_V_.createElement("div",{className:"vjs-current-time-display",innerHTML:"0:00"});el.appendChild(_V_.createElement("div").appendChild(this.content));return el},updateContent:function(){var time=(this.player.scrubbing)?this.player.values.currentTime:this.player.currentTime();this.content.innerHTML=_V_.formatTime(time,this.player.duration())}});_V_.DurationDisplay=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("timeupdate",_V_.proxy(this,this.updateContent))},createElement:function(){var el=this._super("div",{className:"vjs-duration vjs-time-controls vjs-control"});this.content=_V_.createElement("div",{className:"vjs-duration-display",innerHTML:"0:00"});el.appendChild(_V_.createElement("div").appendChild(this.content));return el},updateContent:function(){if(this.player.duration()){this.content.innerHTML=_V_.formatTime(this.player.duration())}}});_V_.TimeDivider=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})}});_V_.RemainingTimeDisplay=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("timeupdate",_V_.proxy(this,this.updateContent))},createElement:function(){var el=this._super("div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.content=_V_.createElement("div",{className:"vjs-remaining-time-display",innerHTML:"-0:00"});el.appendChild(_V_.createElement("div").appendChild(this.content));return el},updateContent:function(){if(this.player.duration()){this.content.innerHTML="-"+_V_.formatTime(this.player.remainingTime())}}});_V_.Slider=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent(this.playerEvent,_V_.proxy(this,this.update));this.addEvent("mousedown",this.onMouseDown);this.addEvent("focus",this.onFocus);this.addEvent("blur",this.onBlur);this.player.addEvent("controlsvisible",this.proxy(this.update));this.update()},createElement:function(type,attrs){attrs=_V_.merge({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},attrs);return this._super(type,attrs)},onMouseDown:function(event){event.preventDefault();_V_.blockTextSelection();_V_.addEvent(document,"mousemove",_V_.proxy(this,this.onMouseMove));_V_.addEvent(document,"mouseup",_V_.proxy(this,this.onMouseUp));this.onMouseMove(event)},onMouseUp:function(event){_V_.unblockTextSelection();_V_.removeEvent(document,"mousemove",this.onMouseMove,false);_V_.removeEvent(document,"mouseup",this.onMouseUp,false);this.update()},update:function(){var barProgress,progress=this.getPercent();handle=this.handle,bar=this.bar;if(isNaN(progress)){progress=0}barProgress=progress;if(handle){var box=this.el,boxWidth=box.offsetWidth,handleWidth=handle.el.offsetWidth,handlePercent=(handleWidth)?handleWidth/boxWidth:0,boxAdjustedPercent=1-handlePercent;adjustedProgress=progress*boxAdjustedPercent,barProgress=adjustedProgress+(handlePercent/2);handle.el.style.left=_V_.round(adjustedProgress*100,2)+"%"}bar.el.style.width=_V_.round(barProgress*100,2)+"%"},calculateDistance:function(event){var box=this.el,boxX=_V_.findPosX(box),boxW=box.offsetWidth,handle=this.handle;if(handle){var handleW=handle.el.offsetWidth;boxX=boxX+(handleW/2);boxW=boxW-handleW}return Math.max(0,Math.min(1,(event.pageX-boxX)/boxW))},onFocus:function(event){_V_.addEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))},onKeyPress:function(event){if(event.which==37){event.preventDefault();this.stepBack()}else{if(event.which==39){event.preventDefault();this.stepForward()}}},onBlur:function(event){_V_.removeEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))}});_V_.ProgressControl=_V_.Component.extend({options:{components:{seekBar:{}}},createElement:function(){return this._super("div",{className:"vjs-progress-control vjs-control"})}});_V_.SeekBar=_V_.Slider.extend({options:{components:{loadProgressBar:{},bar:{componentClass:"PlayProgressBar"},handle:{componentClass:"SeekHandle"}}},playerEvent:"timeupdate",init:function(player,options){this._super(player,options)},createElement:function(){return this._super("div",{className:"vjs-progress-holder"})},getPercent:function(){return this.player.currentTime()/this.player.duration()},onMouseDown:function(event){this._super(event);this.player.scrubbing=true;this.videoWasPlaying=!this.player.paused();this.player.pause()},onMouseMove:function(event){var newTime=this.calculateDistance(event)*this.player.duration();if(newTime==this.player.duration()){newTime=newTime-0.1}this.player.currentTime(newTime)},onMouseUp:function(event){this._super(event);this.player.scrubbing=false;if(this.videoWasPlaying){this.player.play()}},stepForward:function(){this.player.currentTime(this.player.currentTime()+1)},stepBack:function(){this.player.currentTime(this.player.currentTime()-1)}});_V_.LoadProgressBar=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("progress",_V_.proxy(this,this.update))},createElement:function(){return this._super("div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%</span>'})},update:function(){if(this.el.style){this.el.style.width=_V_.round(this.player.bufferedPercent()*100,2)+"%"}}});_V_.PlayProgressBar=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%</span>'})}});_V_.SeekHandle=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-seek-handle",innerHTML:'<span class="vjs-control-text">00:00</span>'})}});_V_.VolumeControl=_V_.Component.extend({options:{components:{volumeBar:{}}},createElement:function(){return this._super("div",{className:"vjs-volume-control vjs-control"})}});_V_.VolumeBar=_V_.Slider.extend({options:{components:{bar:{componentClass:"VolumeLevel"},handle:{componentClass:"VolumeHandle"}}},playerEvent:"volumechange",createElement:function(){return this._super("div",{className:"vjs-volume-bar"})},onMouseMove:function(event){this.player.volume(this.calculateDistance(event))},getPercent:function(){return this.player.volume()},stepForward:function(){this.player.volume(this.player.volume()+0.1)},stepBack:function(){this.player.volume(this.player.volume()-0.1)}});_V_.VolumeLevel=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})}});_V_.VolumeHandle=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-volume-handle",innerHTML:'<span class="vjs-control-text"></span>'})}});_V_.MuteToggle=_V_.Button.extend({init:function(player,options){this._super(player,options);player.addEvent("volumechange",_V_.proxy(this,this.update))},createElement:function(){return this._super("div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})},onClick:function(event){this.player.muted(this.player.muted()?false:true)},update:function(event){var vol=this.player.volume(),level=3;if(vol==0||this.player.muted()){level=0}else{if(vol<0.33){level=1}else{if(vol<0.67){level=2}}}_V_.each.call(this,[0,1,2,3],function(i){_V_.removeClass(this.el,"vjs-vol-"+i)});_V_.addClass(this.el,"vjs-vol-"+level)}});_V_.PosterImage=_V_.Button.extend({init:function(player,options){this._super(player,options);if(!this.player.options.poster){this.hide()}player.addEvent("play",_V_.proxy(this,this.hide))},createElement:function(){return _V_.createElement("img",{className:"vjs-poster",src:this.player.options.poster,tabIndex:-1})},onClick:function(){this.player.play()}});_V_.Menu=_V_.Component.extend({init:function(player,options){this._super(player,options)},addItem:function(component){this.addComponent(component);component.addEvent("click",this.proxy(function(){this.unlockShowing()}))},createElement:function(){return this._super("ul",{className:"vjs-menu"})}});_V_.MenuItem=_V_.Button.extend({init:function(player,options){this._super(player,options);if(options.selected){this.addClass("vjs-selected")}},createElement:function(type,attrs){return this._super("li",_V_.merge({className:"vjs-menu-item",innerHTML:this.options.label},attrs))},onClick:function(){this.selected(true)},selected:function(selected){if(selected){this.addClass("vjs-selected")}else{this.removeClass("vjs-selected")}}});if(!Array.prototype.indexOf){Array.prototype.indexOf=function(searchElement){if(this===void 0||this===null){throw new TypeError()}var t=Object(this);var len=t.length>>>0;if(len===0){return -1}var n=0;if(arguments.length>0){n=Number(arguments[1]);if(n!==n){n=0}else{if(n!==0&&n!==(1/0)&&n!==-(1/0)){n=(n>0||-1)*Math.floor(Math.abs(n))}}}if(n>=len){return -1}var k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k<len;k++){if(k in t&&t[k]===searchElement){return k}}return -1}}_V_.extend({addEvent:function(elem,type,fn){var data=_V_.getData(elem),handlers;if(data&&!data.handler){data.handler=function(event){event=_V_.fixEvent(event);var handlers=_V_.getData(elem).events[event.type];if(handlers){var handlersCopy=[];_V_.each(handlers,function(handler,i){handlersCopy[i]=handler});for(var i=0,l=handlersCopy.length;i<l;i++){handlersCopy[i].call(elem,event)}}}}if(!data.events){data.events={}}handlers=data.events[type];if(!handlers){handlers=data.events[type]=[];if(document.addEventListener){elem.addEventListener(type,data.handler,false)}else{if(document.attachEvent){elem.attachEvent("on"+type,data.handler)}}}if(!fn.guid){fn.guid=_V_.guid++}handlers.push(fn)},removeEvent:function(elem,type,fn){var data=_V_.getData(elem),handlers;if(!data.events){return}if(!type){for(type in data.events){_V_.cleanUpEvents(elem,type)}return}handlers=data.events[type];if(!handlers){return}if(fn&&fn.guid){for(var i=0;i<handlers.length;i++){if(handlers[i].guid===fn.guid){handlers.splice(i--,1)}}}_V_.cleanUpEvents(elem,type)},cleanUpEvents:function(elem,type){var data=_V_.getData(elem);if(data.events[type].length===0){delete data.events[type];if(document.removeEventListener){elem.removeEventListener(type,data.handler,false)}else{if(document.detachEvent){elem.detachEvent("on"+type,data.handler)}}}if(_V_.isEmpty(data.events)){delete data.events;delete data.handler}if(_V_.isEmpty(data)){_V_.removeData(elem)}},fixEvent:function(event){if(event[_V_.expando]){return event}var originalEvent=event;event=new _V_.Event(originalEvent);for(var i=_V_.Event.props.length,prop;i;){prop=_V_.Event.props[--i];event[prop]=originalEvent[prop]}if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType===3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement===event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var eventDocument=event.target.ownerDocument||document,doc=eventDocument.documentElement,body=eventDocument.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(event.which==null&&(event.charCode!=null||event.keyCode!=null)){event.which=event.charCode!=null?event.charCode:event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button!==undefined){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},triggerEvent:function(elem,event){var data=_V_.getData(elem),parent=elem.parentNode||elem.ownerDocument,type=event.type||event,handler;if(data){handler=data.handler}event=typeof event==="object"?event[_V_.expando]?event:new _V_.Event(type,event):new _V_.Event(type);event.type=type;if(handler){handler.call(elem,event)}event.result=undefined;event.target=elem},one:function(elem,type,fn){_V_.addEvent(elem,type,function(){_V_.removeEvent(elem,type,arguments.callee);fn.apply(this,arguments)})}});_V_.Event=function(src,props){if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault())?returnTrue:returnFalse}else{this.type=src}if(props){_V_.merge(this,props)}this.timeStamp=(new Date).getTime();this[_V_.expando]=true};_V_.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return}if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return}if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};_V_.Event.props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" ");function returnTrue(){return true}function returnFalse(){return false}var JSON;if(!JSON){JSON={}}(function(){var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());_V_.Player=_V_.Component.extend({init:function(tag,addOptions,ready){this.tag=tag;var el=this.el=_V_.createElement("div"),options=this.options={},width=options.width=tag.getAttribute("width"),height=options.height=tag.getAttribute("height"),initWidth=width||300,initHeight=height||150;tag.player=el.player=this;this.ready(ready);tag.parentNode.insertBefore(el,tag);el.appendChild(tag);el.id=this.id=tag.id;el.className=tag.className;tag.id+="_html5_api";tag.className="vjs-tech";_V_.players[el.id]=this;el.setAttribute("width",initWidth);el.setAttribute("height",initHeight);el.style.width=initWidth+"px";el.style.height=initHeight+"px";tag.removeAttribute("width");tag.removeAttribute("height");_V_.merge(options,_V_.options);_V_.merge(options,this.getVideoTagSettings());_V_.merge(options,addOptions);tag.removeAttribute("controls");tag.removeAttribute("poster");if(tag.hasChildNodes()){for(var i=0,j=tag.childNodes;i<j.length;i++){if(j[i].nodeName=="SOURCE"||j[i].nodeName=="TRACK"){tag.removeChild(j[i])}}}this.values={};this.addClass("vjs-paused");this.addEvent("ended",this.onEnded);this.addEvent("play",this.onPlay);this.addEvent("pause",this.onPause);this.addEvent("progress",this.onProgress);this.addEvent("error",this.onError);if(options.controls){this.ready(function(){this.initComponents()})}this.textTracks=[];if(options.tracks&&options.tracks.length>0){this.addTextTracks(options.tracks)}if(!options.sources||options.sources.length==0){for(var i=0,j=options.techOrder;i<j.length;i++){var techName=j[i],tech=_V_[techName];if(tech.isSupported()){this.loadTech(techName);break}}}else{this.src(options.sources)}},values:{},destroy:function(){this.stopTrackingProgress();this.stopTrackingCurrentTime();_V_.players[this.id]=null;delete _V_.players[this.id];this.tech.destroy();this.el.parentNode.removeChild(this.el)},createElement:function(type,options){},getVideoTagSettings:function(){var options={sources:[],tracks:[]};options.src=this.tag.getAttribute("src");options.controls=this.tag.getAttribute("controls")!==null;options.poster=this.tag.getAttribute("poster");options.preload=this.tag.getAttribute("preload");options.autoplay=this.tag.getAttribute("autoplay")!==null;options.loop=this.tag.getAttribute("loop")!==null;options.muted=this.tag.getAttribute("muted")!==null;if(this.tag.hasChildNodes()){for(var c,i=0,j=this.tag.childNodes;i<j.length;i++){c=j[i];if(c.nodeName=="SOURCE"){options.sources.push({src:c.getAttribute("src"),type:c.getAttribute("type"),media:c.getAttribute("media"),title:c.getAttribute("title")})}if(c.nodeName=="TRACK"){options.tracks.push({src:c.getAttribute("src"),kind:c.getAttribute("kind"),srclang:c.getAttribute("srclang"),label:c.getAttribute("label"),"default":c.getAttribute("default")!==null,title:c.getAttribute("title")})}}}return options},loadTech:function(techName,source){if(this.tech){this.unloadTech()}else{if(techName!="html5"&&this.tag){this.el.removeChild(this.tag);this.tag=false}}this.techName=techName;this.isReady=false;var techReady=function(){this.player.triggerReady();if(!this.support.progressEvent){this.player.manualProgressOn()}if(!this.support.timeupdateEvent){this.player.manualTimeUpdatesOn()}};var techOptions=_V_.merge({source:source,parentEl:this.el},this.options[techName]);if(source){if(source.src==this.values.src&&this.values.currentTime>0){techOptions.startTime=this.values.currentTime}this.values.src=source.src}this.tech=new _V_[techName](this,techOptions);this.tech.ready(techReady)},unloadTech:function(){this.tech.destroy();if(this.manualProgress){this.manualProgressOff()}if(this.manualTimeUpdates){this.manualTimeUpdatesOff()}this.tech=false},manualProgressOn:function(){this.manualProgress=true;this.trackProgress();this.tech.addEvent("progress",function(){this.removeEvent("progress",arguments.callee);this.support.progressEvent=true;this.player.manualProgressOff()})},manualProgressOff:function(){this.manualProgress=false;this.stopTrackingProgress()},trackProgress:function(){this.progressInterval=setInterval(_V_.proxy(this,function(){if(this.values.bufferEnd<this.buffered().end(0)){this.triggerEvent("progress")}else{if(this.bufferedPercent()==1){this.stopTrackingProgress();this.triggerEvent("progress")}}}),500)},stopTrackingProgress:function(){clearInterval(this.progressInterval)},manualTimeUpdatesOn:function(){this.manualTimeUpdates=true;this.addEvent("play",this.trackCurrentTime);this.addEvent("pause",this.stopTrackingCurrentTime);this.tech.addEvent("timeupdate",function(){this.removeEvent("timeupdate",arguments.callee);this.support.timeupdateEvent=true;this.player.manualTimeUpdatesOff()})},manualTimeUpdatesOff:function(){this.manualTimeUpdates=false;this.stopTrackingCurrentTime();this.removeEvent("play",this.trackCurrentTime);this.removeEvent("pause",this.stopTrackingCurrentTime)},trackCurrentTime:function(){if(this.currentTimeInterval){this.stopTrackingCurrentTime()}this.currentTimeInterval=setInterval(_V_.proxy(this,function(){this.triggerEvent("timeupdate")}),250)},stopTrackingCurrentTime:function(){clearInterval(this.currentTimeInterval)},onEnded:function(){if(this.options.loop){this.currentTime(0);this.play()}else{this.pause();this.currentTime(0);this.pause()}},onPlay:function(){_V_.removeClass(this.el,"vjs-paused");_V_.addClass(this.el,"vjs-playing")},onPause:function(){_V_.removeClass(this.el,"vjs-playing");_V_.addClass(this.el,"vjs-paused")},onProgress:function(){if(this.bufferedPercent()==1){this.triggerEvent("loadedalldata")}},onError:function(e){_V_.log("Video Error",e)},techCall:function(method,arg){if(!this.tech.isReady){this.tech.ready(function(){this[method](arg)})}else{try{this.tech[method](arg)}catch(e){_V_.log(e)}}},techGet:function(method){if(this.tech.isReady){try{return this.tech[method]()}catch(e){if(this.tech[method]===undefined){_V_.log("Video.js: "+method+" method not defined for "+this.techName+" playback technology.",e)}else{if(e.name=="TypeError"){_V_.log("Video.js: "+method+" unavailable on "+this.techName+" playback technology element.",e);this.tech.isReady=false}else{_V_.log(e)}}}}return},play:function(){this.techCall("play");return this},pause:function(){this.techCall("pause");return this},paused:function(){return(this.techGet("paused")===false)?false:true},currentTime:function(seconds){if(seconds!==undefined){this.values.lastSetCurrentTime=seconds;this.techCall("setCurrentTime",seconds);if(this.manualTimeUpdates){this.triggerEvent("timeupdate")}return this}return this.values.currentTime=(this.techGet("currentTime")||0)},duration:function(){return parseFloat(this.techGet("duration"))},remainingTime:function(){return this.duration()-this.currentTime()},buffered:function(){var buffered=this.techGet("buffered"),start=0,end=this.values.bufferEnd=this.values.bufferEnd||0,timeRange;if(buffered&&buffered.length>0&&buffered.end(0)!==end){end=buffered.end(0);this.values.bufferEnd=end}return _V_.createTimeRange(start,end)},bufferedPercent:function(){return(this.duration())?this.buffered().end(0)/this.duration():0},volume:function(percentAsDecimal){var vol;if(percentAsDecimal!==undefined){vol=Math.max(0,Math.min(1,parseFloat(percentAsDecimal)));this.values.volume=vol;this.techCall("setVolume",vol);_V_.setLocalStorage("volume",vol);return this}vol=parseFloat(this.techGet("volume"));return(isNaN(vol))?1:vol},muted:function(muted){if(muted!==undefined){this.techCall("setMuted",muted);return this}return this.techGet("muted")||false},width:function(width,skipListeners){if(width!==undefined){this.el.width=width;this.el.style.width=width+"px";if(!skipListeners){this.triggerEvent("resize")}return this}return parseInt(this.el.getAttribute("width"))},height:function(height){if(height!==undefined){this.el.height=height;this.el.style.height=height+"px";this.triggerEvent("resize");return this}return parseInt(this.el.getAttribute("height"))},size:function(width,height){return this.width(width,true).height(height)},supportsFullScreen:function(){return this.techGet("supportsFullScreen")||false},requestFullScreen:function(){var requestFullScreen=_V_.support.requestFullScreen;this.isFullScreen=true;if(requestFullScreen){_V_.addEvent(document,requestFullScreen.eventName,this.proxy(function(){this.isFullScreen=document[requestFullScreen.isFullScreen];if(this.isFullScreen==false){_V_.removeEvent(document,requestFullScreen.eventName,arguments.callee)}this.triggerEvent("fullscreenchange")}));if(this.tech.support.fullscreenResize===false&&this.options.flash.iFrameMode!=true){this.pause();this.unloadTech();_V_.addEvent(document,requestFullScreen.eventName,this.proxy(function(){_V_.removeEvent(document,requestFullScreen.eventName,arguments.callee);this.loadTech(this.techName,{src:this.values.src})}));this.el[requestFullScreen.requestFn]()}else{this.el[requestFullScreen.requestFn]()}}else{if(this.tech.supportsFullScreen()){this.triggerEvent("fullscreenchange");this.techCall("enterFullScreen")}else{this.triggerEvent("fullscreenchange");this.enterFullWindow()}}return this},cancelFullScreen:function(){var requestFullScreen=_V_.support.requestFullScreen;this.isFullScreen=false;if(requestFullScreen){if(this.tech.support.fullscreenResize===false&&this.options.flash.iFrameMode!=true){this.pause();this.unloadTech();_V_.addEvent(document,requestFullScreen.eventName,this.proxy(function(){_V_.removeEvent(document,requestFullScreen.eventName,arguments.callee);this.loadTech(this.techName,{src:this.values.src})}));document[requestFullScreen.cancelFn]()}else{document[requestFullScreen.cancelFn]()}}else{if(this.tech.supportsFullScreen()){this.techCall("exitFullScreen");this.triggerEvent("fullscreenchange")}else{this.exitFullWindow();this.triggerEvent("fullscreenchange")}}return this},enterFullWindow:function(){this.isFullWindow=true;this.docOrigOverflow=document.documentElement.style.overflow;_V_.addEvent(document,"keydown",_V_.proxy(this,this.fullWindowOnEscKey));document.documentElement.style.overflow="hidden";_V_.addClass(document.body,"vjs-full-window");_V_.addClass(this.el,"vjs-fullscreen");this.triggerEvent("enterFullWindow")},fullWindowOnEscKey:function(event){if(event.keyCode==27){if(this.isFullScreen==true){this.cancelFullScreen()}else{this.exitFullWindow()}}},exitFullWindow:function(){this.isFullWindow=false;_V_.removeEvent(document,"keydown",this.fullWindowOnEscKey);document.documentElement.style.overflow=this.docOrigOverflow;_V_.removeClass(document.body,"vjs-full-window");_V_.removeClass(this.el,"vjs-fullscreen");this.triggerEvent("exitFullWindow")},selectSource:function(sources){for(var i=0,j=this.options.techOrder;i<j.length;i++){var techName=j[i],tech=_V_[techName];if(tech.isSupported()){for(var a=0,b=sources;a<b.length;a++){var source=b[a];if(tech.canPlaySource.call(this,source)){return{source:source,tech:techName}}}}}return false},src:function(source){if(source instanceof Array){var sourceTech=this.selectSource(source),source,techName;if(sourceTech){source=sourceTech.source;techName=sourceTech.tech;if(techName==this.techName){this.src(source)}else{this.loadTech(techName,source)}}else{_V_.log("No compatible source and playback technology were found.")}}else{if(source instanceof Object){if(_V_[this.techName].canPlaySource(source)){this.src(source.src)}else{this.src([source])}}else{this.values.src=source;if(!this.isReady){this.ready(function(){this.src(source)})}else{this.techCall("src",source);if(this.options.preload=="auto"){this.load()}if(this.options.autoplay){this.play()}}}}return this},load:function(){this.techCall("load");return this},currentSrc:function(){return this.techGet("currentSrc")||this.values.src||""},preload:function(value){if(value!==undefined){this.techCall("setPreload",value);this.options.preload=value;return this}return this.techGet("preload")},autoplay:function(value){if(value!==undefined){this.techCall("setAutoplay",value);this.options.autoplay=value;return this}return this.techGet("autoplay",value)},loop:function(value){if(value!==undefined){this.techCall("setLoop",value);this.options.loop=value;return this}return this.techGet("loop")},controls:function(){return this.options.controls},poster:function(){return this.techGet("poster")},error:function(){return this.techGet("error")},ended:function(){return this.techGet("ended")}});(function(){var requestFn,cancelFn,eventName,isFullScreen,playerProto=_V_.Player.prototype;if(document.cancelFullscreen!==undefined){requestFn="requestFullscreen";cancelFn="exitFullscreen";eventName="fullscreenchange";isFullScreen="fullScreen"}else{_V_.each(["moz","webkit"],function(prefix){if((prefix!="moz"||document.mozFullScreenEnabled)&&document[prefix+"CancelFullScreen"]!==undefined){requestFn=prefix+"RequestFullScreen";cancelFn=prefix+"CancelFullScreen";eventName=prefix+"fullscreenchange";if(prefix=="webkit"){isFullScreen=prefix+"IsFullScreen"}else{isFullScreen=prefix+"FullScreen"}}})}if(requestFn){_V_.support.requestFullScreen={requestFn:requestFn,cancelFn:cancelFn,eventName:eventName,isFullScreen:isFullScreen}}})();_V_.PlaybackTech=_V_.Component.extend({init:function(player,options){},onClick:function(){if(this.player.options.controls){_V_.PlayToggle.prototype.onClick.call(this)}}});_V_.apiMethods="play,pause,paused,currentTime,setCurrentTime,duration,buffered,volume,setVolume,muted,setMuted,width,height,supportsFullScreen,enterFullScreen,src,load,currentSrc,preload,setPreload,autoplay,setAutoplay,loop,setLoop,error,networkState,readyState,seeking,initialTime,startOffsetTime,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks,defaultPlaybackRate,playbackRate,mediaGroup,controller,controls,defaultMuted".split(",");_V_.each(_V_.apiMethods,function(methodName){_V_.PlaybackTech.prototype[methodName]=function(){throw new Error("The '"+methodName+"' method is not available on the playback technology's API")}});_V_.html5=_V_.PlaybackTech.extend({init:function(player,options,ready){this.player=player;this.el=this.createElement();this.ready(ready);this.addEvent("click",this.proxy(this.onClick));var source=options.source;if(source&&this.el.currentSrc==source.src){player.triggerEvent("loadstart")}else{if(source){this.el.src=source.src}}player.ready(function(){if(this.options.autoplay&&this.paused()){this.tag.poster=null;this.play()}});this.setupTriggers();this.triggerReady()},destroy:function(){this.player.tag=false;this.removeTriggers();this.el.parentNode.removeChild(this.el)},createElement:function(){var html5=_V_.html5,player=this.player,el=player.tag,newEl;if(!el||this.support.movingElementInDOM===false){if(el){player.el.removeChild(el)}newEl=_V_.createElement("video",{id:el.id||player.el.id+"_html5_api",className:el.className||"vjs-tech"});el=newEl;_V_.insertFirst(el,player.el)}_V_.each(["autoplay","preload","loop","muted"],function(attr){if(player.options[attr]!==null){el[attr]=player.options[attr]}},this);return el},setupTriggers:function(){_V_.each.call(this,_V_.html5.events,function(type){_V_.addEvent(this.el,type,_V_.proxy(this.player,this.eventHandler))})},removeTriggers:function(){_V_.each.call(this,_V_.html5.events,function(type){_V_.removeEvent(this.el,type,_V_.proxy(this.player,this.eventHandler))})},eventHandler:function(e){e.stopPropagation();this.triggerEvent(e)},play:function(){this.el.play()},pause:function(){this.el.pause()},paused:function(){return this.el.paused},currentTime:function(){return this.el.currentTime},setCurrentTime:function(seconds){try{this.el.currentTime=seconds}catch(e){_V_.log(e,"Video isn't ready. (VideoJS)")}},duration:function(){return this.el.duration||0},buffered:function(){return this.el.buffered},volume:function(){return this.el.volume},setVolume:function(percentAsDecimal){this.el.volume=percentAsDecimal},muted:function(){return this.el.muted},setMuted:function(muted){this.el.muted=muted},width:function(){return this.el.offsetWidth},height:function(){return this.el.offsetHeight},supportsFullScreen:function(){if(typeof this.el.webkitEnterFullScreen=="function"){if(!navigator.userAgent.match("Chrome")&&!navigator.userAgent.match("Mac OS X 10.5")){return true}}return false},enterFullScreen:function(){try{this.el.webkitEnterFullScreen()}catch(e){if(e.code==11){_V_.log("VideoJS: Video not ready.")}}},src:function(src){this.el.src=src},load:function(){this.el.load()},currentSrc:function(){return this.el.currentSrc},preload:function(){return this.el.preload},setPreload:function(val){this.el.preload=val},autoplay:function(){return this.el.autoplay},setAutoplay:function(val){this.el.autoplay=val},loop:function(){return this.el.loop},setLoop:function(val){this.el.loop=val},error:function(){return this.el.error},seeking:function(){return this.el.seeking},ended:function(){return this.el.ended},controls:function(){return this.player.options.controls},defaultMuted:function(){return this.el.defaultMuted}});_V_.html5.isSupported=function(){return !!document.createElement("video").canPlayType};_V_.html5.canPlaySource=function(srcObj){return !!document.createElement("video").canPlayType(srcObj.type)};_V_.html5.events="loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange".split(",");_V_.html5.prototype.support={fullscreen:(typeof _V_.testVid.webkitEnterFullScreen!==undefined)?(!_V_.ua.match("Chrome")&&!_V_.ua.match("Mac OS X 10.5")?true:false):false,movingElementInDOM:!_V_.isIOS()};if(_V_.isAndroid()){if(_V_.androidVersion()<3){document.createElement("video").constructor.prototype.canPlayType=function(type){return(type&&type.toLowerCase().indexOf("video/mp4")!=-1)?"maybe":""}}}_V_.flash=_V_.PlaybackTech.extend({init:function(player,options){this.player=player;var source=options.source,parentEl=options.parentEl,placeHolder=this.el=_V_.createElement("div",{id:parentEl.id+"_temp_flash"}),objId=player.el.id+"_flash_api",playerOptions=player.options,flashVars=_V_.merge({readyFunction:"_V_.flash.onReady",eventProxyFunction:"_V_.flash.onEvent",errorEventProxyFunction:"_V_.flash.onError",autoplay:playerOptions.autoplay,preload:playerOptions.preload,loop:playerOptions.loop,muted:playerOptions.muted},options.flashVars),params=_V_.merge({wmode:"opaque",bgcolor:"#000000"},options.params),attributes=_V_.merge({id:objId,name:objId,"class":"vjs-tech"},options.attributes);if(source){flashVars.src=encodeURIComponent(_V_.getAbsoluteURL(source.src))}_V_.insertFirst(placeHolder,parentEl);if(options.startTime){this.ready(function(){this.load();this.play();this.currentTime(options.startTime)})}if(options.iFrameMode==true&&!_V_.isFF){var iFrm=_V_.createElement("iframe",{id:objId+"_iframe",name:objId+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});flashVars.readyFunction="ready";flashVars.eventProxyFunction="events";flashVars.errorEventProxyFunction="errors";_V_.addEvent(iFrm,"load",_V_.proxy(this,function(){var iDoc,objTag,swfLoc,iWin=iFrm.contentWindow,varString="";iDoc=iFrm.contentDocument?iFrm.contentDocument:iFrm.contentWindow.document;iDoc.write(_V_.flash.getEmbedCode(options.swf,flashVars,params,attributes));iWin.player=this.player;iWin.ready=_V_.proxy(this.player,function(currSwf){var el=iDoc.getElementById(currSwf),player=this,tech=player.tech;tech.el=el;_V_.addEvent(el,"click",tech.proxy(tech.onClick));_V_.flash.checkReady(tech)});iWin.events=_V_.proxy(this.player,function(swfID,eventName,other){var player=this;if(player&&player.techName=="flash"){player.triggerEvent(eventName)}});iWin.errors=_V_.proxy(this.player,function(swfID,eventName){_V_.log("Flash Error",eventName)})}));placeHolder.parentNode.replaceChild(iFrm,placeHolder)}else{_V_.flash.embed(options.swf,placeHolder,flashVars,params,attributes)}},destroy:function(){this.el.parentNode.removeChild(this.el)},play:function(){this.el.vjs_play()},pause:function(){this.el.vjs_pause()},src:function(src){src=_V_.getAbsoluteURL(src);this.el.vjs_src(src);if(this.player.autoplay()){var tech=this;setTimeout(function(){tech.play()},0)}},load:function(){this.el.vjs_load()},poster:function(){this.el.vjs_getProperty("poster")},buffered:function(){return _V_.createTimeRange(0,this.el.vjs_getProperty("buffered"))},supportsFullScreen:function(){return false},enterFullScreen:function(){return false}});(function(){var api=_V_.flash.prototype,readWrite="preload,currentTime,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),readOnly="error,currentSrc,networkState,readyState,seeking,initialTime,duration,startOffsetTime,paused,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks".split(","),callOnly="load,play,pause".split(",");createSetter=function(attr){var attrUpper=attr.charAt(0).toUpperCase()+attr.slice(1);api["set"+attrUpper]=function(val){return this.el.vjs_setProperty(attr,val)}},createGetter=function(attr){api[attr]=function(){return this.el.vjs_getProperty(attr)}};_V_.each(readWrite,function(attr){createGetter(attr);createSetter(attr)});_V_.each(readOnly,function(attr){createGetter(attr)})})();_V_.flash.isSupported=function(){return _V_.flash.version()[0]>=10};_V_.flash.canPlaySource=function(srcObj){if(srcObj.type in _V_.flash.prototype.support.formats){return"maybe"}};_V_.flash.prototype.support={formats:{"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},progressEvent:false,timeupdateEvent:false,fullscreenResize:false,parentResize:!(_V_.ua.match("Firefox"))};_V_.flash.onReady=function(currSwf){var el=_V_.el(currSwf);var player=el.player||el.parentNode.player,tech=player.tech;el.player=player;tech.el=el;tech.addEvent("click",tech.onClick);_V_.flash.checkReady(tech)};_V_.flash.checkReady=function(tech){if(tech.el.vjs_getProperty){tech.triggerReady()}else{setTimeout(function(){_V_.flash.checkReady(tech)},50)}};_V_.flash.onEvent=function(swfID,eventName){var player=_V_.el(swfID).player;player.triggerEvent(eventName)};_V_.flash.onError=function(swfID,err){var player=_V_.el(swfID).player;player.triggerEvent("error");_V_.log("Flash Error",err,swfID)};_V_.flash.version=function(){var version="0,0,0";try{version=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){version=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}}catch(e){}}return version.split(",")};_V_.flash.embed=function(swf,placeHolder,flashVars,params,attributes){var code=_V_.flash.getEmbedCode(swf,flashVars,params,attributes),obj=_V_.createElement("div",{innerHTML:code}).childNodes[0],par=placeHolder.parentNode;placeHolder.parentNode.replaceChild(obj,placeHolder);if(_V_.isIE()){var newObj=par.childNodes[0];setTimeout(function(){newObj.style.display="block"},1000)}return obj};_V_.flash.getEmbedCode=function(swf,flashVars,params,attributes){var objTag='<object type="application/x-shockwave-flash"',flashVarsString="",paramsString="";attrsString="";if(flashVars){_V_.eachProp(flashVars,function(key,val){flashVarsString+=(key+"="+val+"&")})}params=_V_.merge({movie:swf,flashvars:flashVarsString,allowScriptAccess:"always",allowNetworking:"all"},params);_V_.eachProp(params,function(key,val){paramsString+='<param name="'+key+'" value="'+val+'" />'});attributes=_V_.merge({data:swf,width:"100%",height:"100%"},attributes);_V_.eachProp(attributes,function(key,val){attrsString+=(key+'="'+val+'" ')});return objTag+attrsString+">"+paramsString+"</object>"};_V_.merge(_V_.Player.prototype,{addTextTracks:function(trackObjects){var tracks=this.textTracks=(this.textTracks)?this.textTracks:[],i=0,j=trackObjects.length,track,Kind;for(;i<j;i++){Kind=_V_.uc(trackObjects[i].kind||"subtitles");track=new _V_[Kind+"Track"](this,trackObjects[i]);tracks.push(track);if(track["default"]){this.ready(_V_.proxy(track,track.show))}}return this},showTextTrack:function(id,disableSameKind){var tracks=this.textTracks,i=0,j=tracks.length,track,showTrack,kind;for(;i<j;i++){track=tracks[i];if(track.id===id){track.show();showTrack=track}else{if(disableSameKind&&track.kind==disableSameKind&&track.mode>0){track.disable()}}}kind=(showTrack)?showTrack.kind:((disableSameKind)?disableSameKind:false);if(kind){this.triggerEvent(kind+"trackchange")}return this}});_V_.Track=_V_.Component.extend({init:function(player,options){this._super(player,options);_V_.merge(this,{id:options.id||("vjs_"+options.kind+"_"+options.language+"_"+_V_.guid++),src:options.src,"default":options["default"],title:options.title,language:options.srclang,label:options.label,cues:[],activeCues:[],readyState:0,mode:0})},createElement:function(){return this._super("div",{className:"vjs-"+this.kind+" vjs-text-track"})},show:function(){this.activate();this.mode=2;this._super()},hide:function(){this.activate();this.mode=1;this._super()},disable:function(){if(this.mode==2){this.hide()}this.deactivate();this.mode=0},activate:function(){if(this.readyState==0){this.load()}if(this.mode==0){this.player.addEvent("timeupdate",this.proxy(this.update,this.id));this.player.addEvent("ended",this.proxy(this.reset,this.id));if(this.kind=="captions"||this.kind=="subtitles"){this.player.textTrackDisplay.addComponent(this)}}},deactivate:function(){this.player.removeEvent("timeupdate",this.proxy(this.update,this.id));this.player.removeEvent("ended",this.proxy(this.reset,this.id));this.reset();this.player.textTrackDisplay.removeComponent(this)},load:function(){if(this.readyState==0){this.readyState=1;_V_.get(this.src,this.proxy(this.parseCues),this.proxy(this.onError))}},onError:function(err){this.error=err;this.readyState=3;this.triggerEvent("error")},parseCues:function(srcContent){var cue,time,text,lines=srcContent.split("\n"),line="",id;for(var i=1,j=lines.length;i<j;i++){line=_V_.trim(lines[i]);if(line){if(line.indexOf("-->")==-1){id=line;line=_V_.trim(lines[++i])}else{id=this.cues.length}cue={id:id,index:this.cues.length};time=line.split(" --> ");cue.startTime=this.parseCueTime(time[0]);cue.endTime=this.parseCueTime(time[1]);text=[];while(lines[++i]&&(line=_V_.trim(lines[i]))){text.push(line)}cue.text=text.join("<br/>");this.cues.push(cue)}}this.readyState=2;this.triggerEvent("loaded")},parseCueTime:function(timeText){var parts=timeText.split(":"),time=0,hours,minutes,other,seconds,ms,flags;if(parts.length==3){hours=parts[0];minutes=parts[1];other=parts[2]}else{hours=0;minutes=parts[0];other=parts[1]}other=other.split(/\s+/);seconds=other.splice(0,1)[0];seconds=seconds.split(/\.|,/);ms=parseFloat(seconds[1]);seconds=seconds[0];time+=parseFloat(hours)*3600;time+=parseFloat(minutes)*60;time+=parseFloat(seconds);if(ms){time+=ms/1000}return time},update:function(){if(this.cues.length>0){var time=this.player.currentTime();if(this.prevChange===undefined||time<this.prevChange||this.nextChange<=time){var cues=this.cues,newNextChange=this.player.duration(),newPrevChange=0,reverse=false,newCues=[],firstActiveIndex,lastActiveIndex,html="",cue,i,j;if(time>=this.nextChange||this.nextChange===undefined){i=(this.firstActiveIndex!==undefined)?this.firstActiveIndex:0}else{reverse=true;i=(this.lastActiveIndex!==undefined)?this.lastActiveIndex:cues.length-1}while(true){cue=cues[i];if(cue.endTime<=time){newPrevChange=Math.max(newPrevChange,cue.endTime);if(cue.active){cue.active=false}}else{if(time<cue.startTime){newNextChange=Math.min(newNextChange,cue.startTime);if(cue.active){cue.active=false}if(!reverse){break}}else{if(reverse){newCues.splice(0,0,cue);if(lastActiveIndex===undefined){lastActiveIndex=i}firstActiveIndex=i}else{newCues.push(cue);if(firstActiveIndex===undefined){firstActiveIndex=i}lastActiveIndex=i}newNextChange=Math.min(newNextChange,cue.endTime);newPrevChange=Math.max(newPrevChange,cue.startTime);cue.active=true}}if(reverse){if(i===0){break}else{i--}}else{if(i===cues.length-1){break}else{i++}}}this.activeCues=newCues;this.nextChange=newNextChange;this.prevChange=newPrevChange;this.firstActiveIndex=firstActiveIndex;this.lastActiveIndex=lastActiveIndex;this.updateDisplay();this.triggerEvent("cuechange")}}},updateDisplay:function(){var cues=this.activeCues,html="",i=0,j=cues.length;for(;i<j;i++){html+="<span class='vjs-tt-cue'>"+cues[i].text+"</span>"}this.el.innerHTML=html},reset:function(){this.nextChange=0;this.prevChange=this.player.duration();this.firstActiveIndex=0;this.lastActiveIndex=0}});_V_.CaptionsTrack=_V_.Track.extend({kind:"captions"});_V_.SubtitlesTrack=_V_.Track.extend({kind:"subtitles"});_V_.ChaptersTrack=_V_.Track.extend({kind:"chapters"});_V_.TextTrackDisplay=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-text-track-display"})}});_V_.TextTrackMenuItem=_V_.MenuItem.extend({init:function(player,options){var track=this.track=options.track;options.label=track.label;options.selected=track["default"];this._super(player,options);this.player.addEvent(track.kind+"trackchange",_V_.proxy(this,this.update))},onClick:function(){this._super();this.player.showTextTrack(this.track.id,this.track.kind)},update:function(){if(this.track.mode==2){this.selected(true)}else{this.selected(false)}}});_V_.OffTextTrackMenuItem=_V_.TextTrackMenuItem.extend({init:function(player,options){options.track={kind:options.kind,player:player,label:"Off"};this._super(player,options)},onClick:function(){this._super();this.player.showTextTrack(this.track.id,this.track.kind)},update:function(){var tracks=this.player.textTracks,i=0,j=tracks.length,track,off=true;for(;i<j;i++){track=tracks[i];if(track.kind==this.track.kind&&track.mode==2){off=false}}if(off){this.selected(true)}else{this.selected(false)}}});_V_.TextTrackButton=_V_.Button.extend({init:function(player,options){this._super(player,options);this.menu=this.createMenu();if(this.items.length===0){this.hide()}},createMenu:function(){var menu=new _V_.Menu(this.player);menu.el.appendChild(_V_.createElement("li",{className:"vjs-menu-title",innerHTML:_V_.uc(this.kind)}));menu.addItem(new _V_.OffTextTrackMenuItem(this.player,{kind:this.kind}));this.items=this.createItems();this.each(this.items,function(item){menu.addItem(item)});this.addComponent(menu);return menu},createItems:function(){var items=[];this.each(this.player.textTracks,function(track){if(track.kind===this.kind){items.push(new _V_.TextTrackMenuItem(this.player,{track:track}))}});return items},buildCSSClass:function(){return this.className+" vjs-menu-button "+this._super()},onFocus:function(){this.menu.lockShowing();_V_.one(this.menu.el.childNodes[this.menu.el.childNodes.length-1],"blur",this.proxy(function(){this.menu.unlockShowing()}))},onBlur:function(){},onClick:function(){this.one("mouseout",this.proxy(function(){this.menu.unlockShowing();this.el.blur()}))}});_V_.CaptionsButton=_V_.TextTrackButton.extend({kind:"captions",buttonText:"Captions",className:"vjs-captions-button"});_V_.SubtitlesButton=_V_.TextTrackButton.extend({kind:"subtitles",buttonText:"Subtitles",className:"vjs-subtitles-button"});_V_.ChaptersButton=_V_.TextTrackButton.extend({kind:"chapters",buttonText:"Chapters",className:"vjs-chapters-button",createItems:function(chaptersTrack){var items=[];this.each(this.player.textTracks,function(track){if(track.kind===this.kind){items.push(new _V_.TextTrackMenuItem(this.player,{track:track}))}});return items},createMenu:function(){var tracks=this.player.textTracks,i=0,j=tracks.length,track,chaptersTrack,items=this.items=[];for(;i<j;i++){track=tracks[i];if(track.kind==this.kind&&track["default"]){if(track.readyState<2){this.chaptersTrack=track;track.addEvent("loaded",this.proxy(this.createMenu));return}else{chaptersTrack=track;break}}}var menu=this.menu=new _V_.Menu(this.player);menu.el.appendChild(_V_.createElement("li",{className:"vjs-menu-title",innerHTML:_V_.uc(this.kind)}));if(chaptersTrack){var cues=chaptersTrack.cues,i=0,j=cues.length,cue,mi;for(;i<j;i++){cue=cues[i];mi=new _V_.ChaptersTrackMenuItem(this.player,{track:chaptersTrack,cue:cue});items.push(mi);menu.addComponent(mi)}}this.addComponent(menu);if(this.items.length>0){this.show()}return menu}});_V_.ChaptersTrackMenuItem=_V_.MenuItem.extend({init:function(player,options){var track=this.track=options.track,cue=this.cue=options.cue,currentTime=player.currentTime();options.label=cue.text;options.selected=(cue.startTime<=currentTime&¤tTime<cue.endTime);this._super(player,options);track.addEvent("cuechange",_V_.proxy(this,this.update))},onClick:function(){this._super();this.player.currentTime(this.cue.startTime);this.update(this.cue.startTime)},update:function(time){var cue=this.cue,currentTime=this.player.currentTime();if(cue.startTime<=currentTime&¤tTime<cue.endTime){this.selected(true)}else{this.selected(false)}}});_V_.merge(_V_.ControlBar.prototype.options.components,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});_V_.autoSetup=function(){var options,vid,player,vids=document.getElementsByTagName("video");if(vids&&vids.length>0){for(var i=0,j=vids.length;i<j;i++){vid=vids[i];if(vid&&vid.getAttribute){if(vid.player===undefined){options=vid.getAttribute("data-setup");if(options!==null){options=JSON.parse(options||"{}");player=_V_(vid,options)}}}else{_V_.autoSetupTimeout(1);break}}}else{if(!_V_.windowLoaded){_V_.autoSetupTimeout(1)}}};_V_.autoSetupTimeout=function(wait){setTimeout(_V_.autoSetup,wait)};_V_.addEvent(window,"load",function(){_V_.windowLoaded=true});_V_.autoSetup();window.VideoJS=window._V_=VideoJS})(window);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! Copyright 2013 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE */
|
2 |
+
(function() {var b=void 0,f=!0,h=null,l=!1;function m(){return function(){}}function p(a){return function(){return this[a]}}function r(a){return function(){return a}}var t;document.createElement("video");document.createElement("audio");function u(a,c,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice(1));if(u.Na[a])return u.Na[a];a=u.s(a)}if(!a||!a.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return a.player||new u.ga(a,c,d)}var v=u;window.xd=window.yd=u;u.Qb="GENERATED_CDN_VSN";
|
3 |
+
u.Pb="https:"==document.location.protocol?"https://":"http://";u.options={techOrder:["html5","flash"],html5:{},flash:{swf:u.Pb+"vjs.zencdn.net/c/video-js.swf"},width:300,height:150,defaultVolume:0,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}}};u.Na={};"GENERATED_CDN_VSN"!=u.Qb&&(v.options.flash.swf=u.Pb+"vjs.zencdn.net/"+u.Qb+"/video-js.swf");u.ma=u.CoreObject=m();
|
4 |
+
u.ma.extend=function(a){var c,d;a=a||{};c=a.init||a.g||this.prototype.init||this.prototype.g||m();d=function(){c.apply(this,arguments)};d.prototype=u.i.create(this.prototype);d.prototype.constructor=d;d.extend=u.ma.extend;d.create=u.ma.create;for(var e in a)a.hasOwnProperty(e)&&(d.prototype[e]=a[e]);return d};u.ma.create=function(){var a=u.i.create(this.prototype);this.apply(a,arguments);return a};
|
5 |
+
u.d=function(a,c,d){var e=u.getData(a);e.z||(e.z={});e.z[c]||(e.z[c]=[]);d.u||(d.u=u.u++);e.z[c].push(d);e.S||(e.disabled=l,e.S=function(c){if(!e.disabled){c=u.hc(c);var d=e.z[c.type];if(d)for(var d=d.slice(0),k=0,q=d.length;k<q&&!c.mc();k++)d[k].call(a,c)}});1==e.z[c].length&&(document.addEventListener?a.addEventListener(c,e.S,l):document.attachEvent&&a.attachEvent("on"+c,e.S))};
|
6 |
+
u.t=function(a,c,d){if(u.lc(a)){var e=u.getData(a);if(e.z)if(c){var g=e.z[c];if(g){if(d){if(d.u)for(e=0;e<g.length;e++)g[e].u===d.u&&g.splice(e--,1)}else e.z[c]=[];u.ec(a,c)}}else for(g in e.z)c=g,e.z[c]=[],u.ec(a,c)}};u.ec=function(a,c){var d=u.getData(a);0===d.z[c].length&&(delete d.z[c],document.removeEventListener?a.removeEventListener(c,d.S,l):document.detachEvent&&a.detachEvent("on"+c,d.S));u.Ab(d.z)&&(delete d.z,delete d.S,delete d.disabled);u.Ab(d)&&u.sc(a)};
|
7 |
+
u.hc=function(a){function c(){return f}function d(){return l}if(!a||!a.Bb){var e=a||window.event;a={};for(var g in e)a[g]=e[g];a.target||(a.target=a.srcElement||document);a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;a.preventDefault=function(){e.preventDefault&&e.preventDefault();a.returnValue=l;a.zb=c};a.zb=d;a.stopPropagation=function(){e.stopPropagation&&e.stopPropagation();a.cancelBubble=f;a.Bb=c};a.Bb=d;a.stopImmediatePropagation=function(){e.stopImmediatePropagation&&e.stopImmediatePropagation();
|
8 |
+
a.mc=c;a.stopPropagation()};a.mc=d;if(a.clientX!=h){g=document.documentElement;var j=document.body;a.pageX=a.clientX+(g&&g.scrollLeft||j&&j.scrollLeft||0)-(g&&g.clientLeft||j&&j.clientLeft||0);a.pageY=a.clientY+(g&&g.scrollTop||j&&j.scrollTop||0)-(g&&g.clientTop||j&&j.clientTop||0)}a.which=a.charCode||a.keyCode;a.button!=h&&(a.button=a.button&1?0:a.button&4?1:a.button&2?2:0)}return a};
|
9 |
+
u.k=function(a,c){var d=u.lc(a)?u.getData(a):{},e=a.parentNode||a.ownerDocument;"string"===typeof c&&(c={type:c,target:a});c=u.hc(c);d.S&&d.S.call(a,c);if(e&&!c.Bb())u.k(e,c);else if(!e&&!c.zb()&&(d=u.getData(c.target),c.target[c.type])){d.disabled=f;if("function"===typeof c.target[c.type])c.target[c.type]();d.disabled=l}return!c.zb()};u.Q=function(a,c,d){u.d(a,c,function(){u.t(a,c,arguments.callee);d.apply(this,arguments)})};var w=Object.prototype.hasOwnProperty;
|
10 |
+
u.e=function(a,c){var d=document.createElement(a||"div"),e;for(e in c)w.call(c,e)&&(-1!==e.indexOf("aria-")||"role"==e?d.setAttribute(e,c[e]):d[e]=c[e]);return d};u.Y=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};u.i={};u.i.create=Object.create||function(a){function c(){}c.prototype=a;return new c};u.i.sa=function(a,c,d){for(var e in a)w.call(a,e)&&c.call(d||this,e,a[e])};u.i.B=function(a,c){if(!c)return a;for(var d in c)w.call(c,d)&&(a[d]=c[d]);return a};
|
11 |
+
u.i.gc=function(a,c){var d,e,g;a=u.i.copy(a);for(d in c)w.call(c,d)&&(e=a[d],g=c[d],a[d]=u.i.nc(e)&&u.i.nc(g)?u.i.gc(e,g):c[d]);return a};u.i.copy=function(a){return u.i.B({},a)};u.i.nc=function(a){return!!a&&"object"===typeof a&&"[object Object]"===a.toString()&&a.constructor===Object};u.bind=function(a,c,d){function e(){return c.apply(a,arguments)}c.u||(c.u=u.u++);e.u=d?d+"_"+c.u:c.u;return e};u.qa={};u.u=1;u.expando="vdata"+(new Date).getTime();
|
12 |
+
u.getData=function(a){var c=a[u.expando];c||(c=a[u.expando]=u.u++,u.qa[c]={});return u.qa[c]};u.lc=function(a){a=a[u.expando];return!(!a||u.Ab(u.qa[a]))};u.sc=function(a){var c=a[u.expando];if(c){delete u.qa[c];try{delete a[u.expando]}catch(d){a.removeAttribute?a.removeAttribute(u.expando):a[u.expando]=h}}};u.Ab=function(a){for(var c in a)if(a[c]!==h)return l;return f};u.p=function(a,c){-1==(" "+a.className+" ").indexOf(" "+c+" ")&&(a.className=""===a.className?c:a.className+" "+c)};
|
13 |
+
u.w=function(a,c){if(-1!=a.className.indexOf(c)){for(var d=a.className.split(" "),e=d.length-1;0<=e;e--)d[e]===c&&d.splice(e,1);a.className=d.join(" ")}};u.ib=u.e("video");u.O=navigator.userAgent;u.Bc=!!u.O.match(/iPhone/i);u.Ac=!!u.O.match(/iPad/i);u.Cc=!!u.O.match(/iPod/i);u.Ub=u.Bc||u.Ac||u.Cc;var aa=u,x;var y=u.O.match(/OS (\d+)_/i);x=y&&y[1]?y[1]:b;aa.qd=x;u.ab=!!u.O.match(/Android.*AppleWebKit/i);var ba=u,z=u.O.match(/Android (\d+)\./i);ba.yc=z&&z[1]?z[1]:h;u.zc=function(){return!!u.O.match("Firefox")};
|
14 |
+
u.wb=function(a){var c={};if(a&&a.attributes&&0<a.attributes.length)for(var d=a.attributes,e,g,j=d.length-1;0<=j;j--){e=d[j].name;g=d[j].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==h?f:l;c[e]=g}return c};u.td=function(a,c){var d="";document.defaultView&&document.defaultView.getComputedStyle?d=document.defaultView.getComputedStyle(a,"").getPropertyValue(c):a.currentStyle&&(d=a["client"+c.substr(0,1).toUpperCase()+c.substr(1)]+"px");return d};
|
15 |
+
u.yb=function(a,c){c.firstChild?c.insertBefore(a,c.firstChild):c.appendChild(a)};u.Nb={};u.s=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};u.Ha=function(a,c){c=c||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),j=Math.floor(c/60%60),k=Math.floor(c/3600),g=0<g||0<k?g+":":"";return g+(((g||10<=j)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};u.Gc=function(){document.body.focus();document.onselectstart=r(l)};u.ld=function(){document.onselectstart=r(f)};
|
16 |
+
u.trim=function(a){return a.toString().replace(/^\s+/,"").replace(/\s+$/,"")};u.round=function(a,c){c||(c=0);return Math.round(a*Math.pow(10,c))/Math.pow(10,c)};u.tb=function(a,c){return{length:1,start:function(){return a},end:function(){return c}}};
|
17 |
+
u.get=function(a,c,d){var e=0===a.indexOf("file:")||0===window.location.href.indexOf("file:")&&-1===a.indexOf("http");"undefined"===typeof XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");});var g=new XMLHttpRequest;try{g.open("GET",a)}catch(j){d(j)}g.onreadystatechange=
|
18 |
+
function(){4===g.readyState&&(200===g.status||e&&0===g.status?c(g.responseText):d&&d())};try{g.send()}catch(k){d&&d(k)}};u.dd=function(a){try{var c=window.localStorage||l;c&&(c.volume=a)}catch(d){22==d.code||1014==d.code?u.log("LocalStorage Full (VideoJS)",d):18==d.code?u.log("LocalStorage not allowed (VideoJS)",d):u.log("LocalStorage Error (VideoJS)",d)}};u.jc=function(a){a.match(/^https?:\/\//)||(a=u.e("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
|
19 |
+
u.log=function(){u.log.history=u.log.history||[];u.log.history.push(arguments);window.console&&window.console.log(Array.prototype.slice.call(arguments))};u.Oc=function(a){var c,d;a.getBoundingClientRect&&a.parentNode&&(c=a.getBoundingClientRect());if(!c)return{left:0,top:0};a=document.documentElement;d=document.body;return{left:c.left+(window.pageXOffset||d.scrollLeft)-(a.clientLeft||d.clientLeft||0),top:c.top+(window.pageYOffset||d.scrollTop)-(a.clientTop||d.clientTop||0)}};
|
20 |
+
u.c=u.ma.extend({g:function(a,c,d){this.a=a;this.f=u.i.copy(this.f);c=this.options(c);this.L=c.id||(c.el&&c.el.id?c.el.id:a.id()+"_component_"+u.u++);this.Tc=c.name||h;this.b=c.el||this.e();this.D=[];this.rb={};this.R={};if((a=this.f)&&a.children){var e=this;u.i.sa(a.children,function(a,c){c!==l&&!c.loadEvent&&(e[a]=e.X(a,c))})}this.M(d)}});t=u.c.prototype;
|
21 |
+
t.C=function(){if(this.D)for(var a=this.D.length-1;0<=a;a--)this.D[a].C&&this.D[a].C();this.R=this.rb=this.D=h;this.t();this.b.parentNode&&this.b.parentNode.removeChild(this.b);u.sc(this.b);this.b=h};t.pc=p("a");t.options=function(a){return a===b?this.f:this.f=u.i.gc(this.f,a)};t.e=function(a,c){return u.e(a,c)};t.s=p("b");t.id=p("L");t.name=p("Tc");t.children=p("D");
|
22 |
+
t.X=function(a,c){var d,e;"string"===typeof a?(e=a,c=c||{},d=c.componentClass||u.Y(e),c.name=e,d=new window.videojs[d](this.a||this,c)):d=a;this.D.push(d);"function"===typeof d.id&&(this.rb[d.id()]=d);(e=e||d.name&&d.name())&&(this.R[e]=d);"function"===typeof d.el&&d.el()&&(this.ra||this.b).appendChild(d.el());return d};
|
23 |
+
t.removeChild=function(a){"string"===typeof a&&(a=this.R[a]);if(a&&this.D){for(var c=l,d=this.D.length-1;0<=d;d--)if(this.D[d]===a){c=f;this.D.splice(d,1);break}c&&(this.rb[a.id]=h,this.R[a.name]=h,(c=a.s())&&c.parentNode===(this.ra||this.b)&&(this.ra||this.b).removeChild(a.s()))}};t.P=r("");t.d=function(a,c){u.d(this.b,a,u.bind(this,c));return this};t.t=function(a,c){u.t(this.b,a,c);return this};t.Q=function(a,c){u.Q(this.b,a,u.bind(this,c));return this};t.k=function(a,c){u.k(this.b,a,c);return this};
|
24 |
+
t.M=function(a){a&&(this.$?a.call(this):(this.Qa===b&&(this.Qa=[]),this.Qa.push(a)));return this};t.Ta=function(){this.$=f;var a=this.Qa;if(a&&0<a.length){for(var c=0,d=a.length;c<d;c++)a[c].call(this);this.Qa=[];this.k("ready")}};t.p=function(a){u.p(this.b,a);return this};t.w=function(a){u.w(this.b,a);return this};t.show=function(){this.b.style.display="block";return this};t.v=function(){this.b.style.display="none";return this};t.ja=function(){this.w("vjs-fade-out");this.p("vjs-fade-in");return this};
|
25 |
+
t.Ga=function(){this.w("vjs-fade-in");this.p("vjs-fade-out");return this};t.oc=function(){this.p("vjs-lock-showing");return this};t.Ua=function(){this.w("vjs-lock-showing");return this};t.disable=function(){this.v();this.show=m();this.ja=m()};t.width=function(a,c){return A(this,"width",a,c)};t.height=function(a,c){return A(this,"height",a,c)};t.Kc=function(a,c){return this.width(a,f).height(c)};
|
26 |
+
function A(a,c,d,e){if(d!==b)return a.b.style[c]=-1!==(""+d).indexOf("%")||-1!==(""+d).indexOf("px")?d:"auto"===d?"":d+"px",e||a.k("resize"),a;if(!a.b)return 0;d=a.b.style[c];e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(a.b["offset"+u.Y(c)],10)}
|
27 |
+
u.o=u.c.extend({g:function(a,c){u.c.call(this,a,c);var d=l;this.d("touchstart",function(){d=f});this.d("touchmove",function(){d=l});var e=this;this.d("touchend",function(a){d&&e.n(a);a.preventDefault();a.stopPropagation()});this.d("click",this.n);this.d("focus",this.La);this.d("blur",this.Ka)}});t=u.o.prototype;
|
28 |
+
t.e=function(a,c){c=u.i.B({className:this.P(),innerHTML:'<div class="vjs-control-content"><span class="vjs-control-text">'+(this.pa||"Need Text")+"</span></div>",ad:"button","aria-live":"polite",tabIndex:0},c);return u.c.prototype.e.call(this,a,c)};t.P=function(){return"vjs-control "+u.c.prototype.P.call(this)};t.n=m();t.La=function(){u.d(document,"keyup",u.bind(this,this.aa))};t.aa=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.n()};
|
29 |
+
t.Ka=function(){u.t(document,"keyup",u.bind(this,this.aa))};u.J=u.c.extend({g:function(a,c){u.c.call(this,a,c);this.Fc=this.R[this.f.barName];this.handle=this.R[this.f.handleName];a.d(this.qc,u.bind(this,this.update));this.d("mousedown",this.Ma);this.d("touchstart",this.Ma);this.d("focus",this.La);this.d("blur",this.Ka);this.d("click",this.n);this.a.d("controlsvisible",u.bind(this,this.update));a.M(u.bind(this,this.update));this.K={}}});t=u.J.prototype;
|
30 |
+
t.e=function(a,c){c=c||{};c.className+=" vjs-slider";c=u.i.B({ad:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c);return u.c.prototype.e.call(this,a,c)};t.Ma=function(a){a.preventDefault();u.Gc();this.K.move=u.bind(this,this.Gb);this.K.end=u.bind(this,this.Hb);u.d(document,"mousemove",this.K.move);u.d(document,"mouseup",this.K.end);u.d(document,"touchmove",this.K.move);u.d(document,"touchend",this.K.end);this.Gb(a)};
|
31 |
+
t.Hb=function(){u.ld();u.t(document,"mousemove",this.K.move,l);u.t(document,"mouseup",this.K.end,l);u.t(document,"touchmove",this.K.move,l);u.t(document,"touchend",this.K.end,l);this.update()};t.update=function(){if(this.b){var a,c=this.xb(),d=this.handle,e=this.Fc;isNaN(c)&&(c=0);a=c;if(d){a=this.b.offsetWidth;var g=d.s().offsetWidth;a=g?g/a:0;c*=1-a;a=c+a/2;d.s().style.left=u.round(100*c,2)+"%"}e.s().style.width=u.round(100*a,2)+"%"}};
|
32 |
+
function B(a,c){var d,e,g,j;d=a.b;e=u.Oc(d);j=g=d.offsetWidth;d=a.handle;if(a.f.md)return j=e.top,e=c.changedTouches?c.changedTouches[0].pageY:c.pageY,d&&(d=d.s().offsetHeight,j+=d/2,g-=d),Math.max(0,Math.min(1,(j-e+g)/g));g=e.left;e=c.changedTouches?c.changedTouches[0].pageX:c.pageX;d&&(d=d.s().offsetWidth,g+=d/2,j-=d);return Math.max(0,Math.min(1,(e-g)/j))}t.La=function(){u.d(document,"keyup",u.bind(this,this.aa))};
|
33 |
+
t.aa=function(a){37==a.which?(a.preventDefault(),this.vc()):39==a.which&&(a.preventDefault(),this.wc())};t.Ka=function(){u.t(document,"keyup",u.bind(this,this.aa))};t.n=function(a){a.stopImmediatePropagation();a.preventDefault()};u.ha=u.c.extend();u.ha.prototype.defaultValue=0;u.ha.prototype.e=function(a,c){c=c||{};c.className+=" vjs-slider-handle";c=u.i.B({innerHTML:'<span class="vjs-control-text">'+this.defaultValue+"</span>"},c);return u.c.prototype.e.call(this,"div",c)};u.na=u.c.extend();
|
34 |
+
function ca(a,c){a.X(c);c.d("click",u.bind(a,function(){this.Ua()}))}u.na.prototype.e=function(){var a=this.options().Ic||"ul";this.ra=u.e(a,{className:"vjs-menu-content"});a=u.c.prototype.e.call(this,"div",{append:this.ra,className:"vjs-menu"});a.appendChild(this.ra);u.d(a,"click",function(a){a.preventDefault();a.stopImmediatePropagation()});return a};u.I=u.o.extend({g:function(a,c){u.o.call(this,a,c);this.selected(c.selected)}});
|
35 |
+
u.I.prototype.e=function(a,c){return u.o.prototype.e.call(this,"li",u.i.B({className:"vjs-menu-item",innerHTML:this.f.label},c))};u.I.prototype.n=function(){this.selected(f)};u.I.prototype.selected=function(a){a?(this.p("vjs-selected"),this.b.setAttribute("aria-selected",f)):(this.w("vjs-selected"),this.b.setAttribute("aria-selected",l))};
|
36 |
+
u.ea=u.o.extend({g:function(a,c){u.o.call(this,a,c);this.ua=this.Fa();this.X(this.ua);this.G&&0===this.G.length&&this.v();this.d("keyup",this.aa);this.b.setAttribute("aria-haspopup",f);this.b.setAttribute("role","button")}});t=u.ea.prototype;t.oa=l;t.Fa=function(){var a=new u.na(this.a);this.options().title&&a.s().appendChild(u.e("li",{className:"vjs-menu-title",innerHTML:u.Y(this.A),jd:-1}));if(this.G=this.sb())for(var c=0;c<this.G.length;c++)ca(a,this.G[c]);return a};t.sb=m();
|
37 |
+
t.P=function(){return this.className+" vjs-menu-button "+u.o.prototype.P.call(this)};t.La=m();t.Ka=m();t.n=function(){this.Q("mouseout",u.bind(this,function(){this.ua.Ua();this.b.blur()}));this.oa?C(this):D(this)};t.aa=function(a){a.preventDefault();32==a.which||13==a.which?this.oa?C(this):D(this):27==a.which&&this.oa&&C(this)};function D(a){a.oa=f;a.ua.oc();a.b.setAttribute("aria-pressed",f);a.G&&0<a.G.length&&a.G[0].s().focus()}function C(a){a.oa=l;a.ua.Ua();a.b.setAttribute("aria-pressed",l)}
|
38 |
+
u.ga=u.c.extend({g:function(a,c,d){this.N=a;c=u.i.B(da(a),c);this.r={};this.rc=c.poster;this.Ea=c.controls;c.customControlsOnMobile!==f&&(u.Ub||u.ab)?(a.controls=c.controls,this.Ea=l):a.controls=l;u.c.call(this,this,c,d);this.Q("play",function(a){u.k(this.b,{type:"firstplay",target:this.b})||(a.preventDefault(),a.stopPropagation(),a.stopImmediatePropagation())});this.d("ended",this.Vc);this.d("play",this.Jb);this.d("firstplay",this.Wc);this.d("pause",this.Ib);this.d("progress",this.Yc);this.d("durationchange",
|
39 |
+
this.Uc);this.d("error",this.Fb);this.d("fullscreenchange",this.Xc);u.Na[this.L]=this;c.plugins&&u.i.sa(c.plugins,function(a,c){this[a](c)},this)}});t=u.ga.prototype;t.f=u.options;t.C=function(){u.Na[this.L]=h;this.N&&this.N.player&&(this.N.player=h);this.b&&this.b.player&&(this.b.player=h);clearInterval(this.Pa);this.va();this.h&&this.h.C();u.c.prototype.C.call(this)};
|
40 |
+
function da(a){var c={sources:[],tracks:[]};u.i.B(c,u.wb(a));if(a.hasChildNodes())for(var d,e=a.childNodes,g=0,j=e.length;g<j;g++)a=e[g],d=a.nodeName.toLowerCase(),"source"===d?c.sources.push(u.wb(a)):"track"===d&&c.tracks.push(u.wb(a));return c}
|
41 |
+
t.e=function(){var a=this.b=u.c.prototype.e.call(this,"div"),c=this.N;c.removeAttribute("width");c.removeAttribute("height");if(c.hasChildNodes())for(var d=c.childNodes.length,e=0,g=c.childNodes;e<d;e++)("source"==g[0].nodeName.toLowerCase()||"track"==g[0].nodeName.toLowerCase())&&c.removeChild(g[0]);c.id=c.id||"vjs_video_"+u.u++;a.id=c.id;a.className=c.className;c.id+="_html5_api";c.className="vjs-tech";c.player=a.player=this;this.p("vjs-paused");this.width(this.f.width,f);this.height(this.f.height,
|
42 |
+
f);c.parentNode&&c.parentNode.insertBefore(a,c);u.yb(c,a);return a};
|
43 |
+
function E(a,c,d){a.h?F(a):"Html5"!==c&&a.N&&(a.b.removeChild(a.N),a.N.pc=h,a.N=h);a.ba=c;a.$=l;var e=u.i.B({source:d,parentEl:a.b},a.f[c.toLowerCase()]);d&&(d.src==a.r.src&&0<a.r.currentTime&&(e.startTime=a.r.currentTime),a.r.src=d.src);a.h=new window.videojs[c](a,e);a.h.M(function(){this.a.Ta();if(!this.j.Lb){var a=this.a;a.Db=f;a.Pa=setInterval(u.bind(a,function(){this.r.nb<this.buffered().end(0)?this.k("progress"):1==G(this)&&(clearInterval(this.Pa),this.k("progress"))}),500);a.h.Q("progress",
|
44 |
+
function(){this.j.Lb=f;var a=this.a;a.Db=l;clearInterval(a.Pa)})}this.j.Ob||(a=this.a,a.Eb=f,a.d("play",a.xc),a.d("pause",a.va),a.h.Q("timeupdate",function(){this.j.Ob=f;H(this.a)}))})}function F(a){a.$=l;a.h.C();a.Db&&(a.Db=l,clearInterval(a.Pa));a.Eb&&H(a);a.h=l}function H(a){a.Eb=l;a.va();a.t("play",a.xc);a.t("pause",a.va)}t.xc=function(){this.fc&&this.va();this.fc=setInterval(u.bind(this,function(){this.k("timeupdate")}),250)};t.va=function(){clearInterval(this.fc)};
|
45 |
+
t.Vc=function(){this.f.loop&&(this.currentTime(0),this.play())};t.Jb=function(){u.w(this.b,"vjs-paused");u.p(this.b,"vjs-playing")};t.Wc=function(){this.f.starttime&&this.currentTime(this.f.starttime)};t.Ib=function(){u.w(this.b,"vjs-playing");u.p(this.b,"vjs-paused")};t.Yc=function(){1==G(this)&&this.k("loadedalldata")};t.Uc=function(){this.duration(I(this,"duration"))};t.Fb=function(a){u.log("Video Error",a)};t.Xc=function(){this.F?this.p("vjs-fullscreen"):this.w("vjs-fullscreen")};
|
46 |
+
function J(a,c,d){if(a.h&&a.h.$)a.h.M(function(){this[c](d)});else try{a.h[c](d)}catch(e){throw u.log(e),e;}}function I(a,c){if(a.h.$)try{return a.h[c]()}catch(d){throw a.h[c]===b?u.log("Video.js: "+c+" method not defined for "+a.ba+" playback technology.",d):"TypeError"==d.name?(u.log("Video.js: "+c+" unavailable on "+a.ba+" playback technology element.",d),a.h.$=l):u.log(d),d;}}t.play=function(){J(this,"play");return this};t.pause=function(){J(this,"pause");return this};
|
47 |
+
t.paused=function(){return I(this,"paused")===l?l:f};t.currentTime=function(a){return a!==b?(this.r.vd=a,J(this,"setCurrentTime",a),this.Eb&&this.k("timeupdate"),this):this.r.currentTime=I(this,"currentTime")||0};t.duration=function(a){return a!==b?(this.r.duration=parseFloat(a),this):this.r.duration};t.buffered=function(){var a=I(this,"buffered"),c=this.r.nb=this.r.nb||0;a&&(0<a.length&&a.end(0)!==c)&&(c=a.end(0),this.r.nb=c);return u.tb(0,c)};
|
48 |
+
function G(a){return a.duration()?a.buffered().end(0)/a.duration():0}t.volume=function(a){if(a!==b)return a=Math.max(0,Math.min(1,parseFloat(a))),this.r.volume=a,J(this,"setVolume",a),u.dd(a),this;a=parseFloat(I(this,"volume"));return isNaN(a)?1:a};t.muted=function(a){return a!==b?(J(this,"setMuted",a),this):I(this,"muted")||l};t.Sa=function(){return I(this,"supportsFullScreen")||l};
|
49 |
+
t.Ra=function(){var a=u.Nb.Ra;this.F=f;a?(u.d(document,a.Z,u.bind(this,function(){this.F=document[a.F];this.F===l&&u.t(document,a.Z,arguments.callee)})),this.h.j.Ia===l&&this.f.flash.iFrameMode!==f&&(this.pause(),F(this),u.d(document,a.Z,u.bind(this,function(){u.t(document,a.Z,arguments.callee);E(this,this.ba,{src:this.r.src})}))),this.b[a.tc](),this.k("fullscreenchange")):this.h.Sa()?J(this,"enterFullScreen"):(this.Qc=f,this.Lc=document.documentElement.style.overflow,u.d(document,"keydown",u.bind(this,
|
50 |
+
this.ic)),document.documentElement.style.overflow="hidden",u.p(document.body,"vjs-full-window"),this.k("enterFullWindow"),this.k("fullscreenchange"));return this};function K(a){var c=u.Nb.Ra;a.F=l;c?(a.h.j.Ia===l&&a.f.flash.iFrameMode!==f&&(a.pause(),F(a),u.d(document,c.Z,u.bind(a,function(){u.t(document,c.Z,arguments.callee);E(this,this.ba,{src:this.r.src})}))),document[c.pb](),a.k("fullscreenchange")):a.h.Sa()?J(a,"exitFullScreen"):(L(a),a.k("fullscreenchange"))}
|
51 |
+
t.ic=function(a){27===a.keyCode&&(this.F===f?K(this):L(this))};function L(a){a.Qc=l;u.t(document,"keydown",a.ic);document.documentElement.style.overflow=a.Lc;u.w(document.body,"vjs-full-window");a.k("exitFullWindow")}
|
52 |
+
t.src=function(a){if(a instanceof Array){var c;a:{c=a;for(var d=0,e=this.f.techOrder;d<e.length;d++){var g=u.Y(e[d]),j=window.videojs[g];if(j.isSupported())for(var k=0,q=c;k<q.length;k++){var n=q[k];if(j.canPlaySource(n)){c={source:n,h:g};break a}}}c=l}c?(a=c.source,c=c.h,c==this.ba?this.src(a):E(this,c,a)):this.b.appendChild(u.e("p",{innerHTML:'Sorry, no compatible source and playback technology were found for this video. Try using another browser like <a href="http://bit.ly/ccMUEC">Chrome</a> or download the latest <a href="http://adobe.ly/mwfN1">Adobe Flash Player</a>.'}))}else a instanceof
|
53 |
+
Object?window.videojs[this.ba].canPlaySource(a)?this.src(a.src):this.src([a]):(this.r.src=a,this.$?(J(this,"src",a),"auto"==this.f.preload&&this.load(),this.f.autoplay&&this.play()):this.M(function(){this.src(a)}));return this};t.load=function(){J(this,"load");return this};t.currentSrc=function(){return I(this,"currentSrc")||this.r.src||""};t.Oa=function(a){return a!==b?(J(this,"setPreload",a),this.f.preload=a,this):I(this,"preload")};
|
54 |
+
t.autoplay=function(a){return a!==b?(J(this,"setAutoplay",a),this.f.autoplay=a,this):I(this,"autoplay")};t.loop=function(a){return a!==b?(J(this,"setLoop",a),this.f.loop=a,this):I(this,"loop")};t.poster=function(a){a!==b&&(this.rc=a);return this.rc};t.controls=function(a){a!==b&&this.Ea!==a&&(this.Ea=!!a,this.k("controlschange"));return this.Ea};t.error=function(){return I(this,"error")};var M,N,O;O=document.createElement("div");N={};
|
55 |
+
O.rd!==b?(N.tc="requestFullscreen",N.pb="exitFullscreen",N.Z="fullscreenchange",N.F="fullScreen"):(document.mozCancelFullScreen?(M="moz",N.F=M+"FullScreen"):(M="webkit",N.F=M+"IsFullScreen"),O[M+"RequestFullScreen"]&&(N.tc=M+"RequestFullScreen",N.pb=M+"CancelFullScreen"),N.Z=M+"fullscreenchange");document[N.pb]&&(u.Nb.Ra=N);
|
56 |
+
u.da=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.controls()||this.disable();a.Q("play",u.bind(this,function(){var a,c=u.bind(this,this.ja),g=u.bind(this,this.Ga);this.ja();"ontouchstart"in window||(this.a.d("mouseover",c),this.a.d("mouseout",g),this.a.d("pause",u.bind(this,this.oc)),this.a.d("play",u.bind(this,this.Ua)));a=l;this.a.d("touchstart",function(){a=f});this.a.d("touchmove",function(){a=l});this.a.d("touchend",u.bind(this,function(c){var e;a&&(e=this.s().className.search("fade-in"),
|
57 |
+
-1!==e?this.Ga():this.ja());a=l;this.a.paused()||c.preventDefault()}))}))}});u.da.prototype.f={wd:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{}}};u.da.prototype.e=function(){return u.e("div",{className:"vjs-control-bar"})};u.da.prototype.ja=function(){u.c.prototype.ja.call(this);this.a.k("controlsvisible")};
|
58 |
+
u.da.prototype.Ga=function(){u.c.prototype.Ga.call(this);this.a.k("controlshidden")};u.Xb=u.o.extend({g:function(a,c){u.o.call(this,a,c);a.d("play",u.bind(this,this.Jb));a.d("pause",u.bind(this,this.Ib))}});t=u.Xb.prototype;t.pa="Play";t.P=function(){return"vjs-play-control "+u.o.prototype.P.call(this)};t.n=function(){this.a.paused()?this.a.play():this.a.pause()};t.Jb=function(){u.w(this.b,"vjs-paused");u.p(this.b,"vjs-playing");this.b.children[0].children[0].innerHTML="Pause"};
|
59 |
+
t.Ib=function(){u.w(this.b,"vjs-playing");u.p(this.b,"vjs-paused");this.b.children[0].children[0].innerHTML="Play"};u.Ya=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.d("timeupdate",u.bind(this,this.ya))}});
|
60 |
+
u.Ya.prototype.e=function(){var a=u.c.prototype.e.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.content=u.e("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00',"aria-live":"off"});a.appendChild(u.e("div").appendChild(this.content));return a};
|
61 |
+
u.Ya.prototype.ya=function(){var a=this.a.Mb?this.a.r.currentTime:this.a.currentTime();this.content.innerHTML='<span class="vjs-control-text">Current Time </span>'+u.Ha(a,this.a.duration())};u.Za=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.d("timeupdate",u.bind(this,this.ya))}});
|
62 |
+
u.Za.prototype.e=function(){var a=u.c.prototype.e.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.content=u.e("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">Duration Time </span>0:00',"aria-live":"off"});a.appendChild(u.e("div").appendChild(this.content));return a};u.Za.prototype.ya=function(){this.a.duration()&&(this.content.innerHTML='<span class="vjs-control-text">Duration Time </span>'+u.Ha(this.a.duration()))};
|
63 |
+
u.ac=u.c.extend({g:function(a,c){u.c.call(this,a,c)}});u.ac.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};u.gb=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.d("timeupdate",u.bind(this,this.ya))}});
|
64 |
+
u.gb.prototype.e=function(){var a=u.c.prototype.e.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.content=u.e("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">Remaining Time </span>-0:00',"aria-live":"off"});a.appendChild(u.e("div").appendChild(this.content));return a};
|
65 |
+
u.gb.prototype.ya=function(){this.a.duration()&&this.a.duration()&&(this.content.innerHTML='<span class="vjs-control-text">Remaining Time </span>-'+u.Ha(this.a.duration()-this.a.currentTime()))};u.Aa=u.o.extend({g:function(a,c){u.o.call(this,a,c)}});u.Aa.prototype.pa="Fullscreen";u.Aa.prototype.P=function(){return"vjs-fullscreen-control "+u.o.prototype.P.call(this)};
|
66 |
+
u.Aa.prototype.n=function(){this.a.F?(K(this.a),this.b.children[0].children[0].innerHTML="Fullscreen"):(this.a.Ra(),this.b.children[0].children[0].innerHTML="Non-Fullscreen")};u.fb=u.c.extend({g:function(a,c){u.c.call(this,a,c)}});u.fb.prototype.f={children:{seekBar:{}}};u.fb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-progress-control vjs-control"})};u.Yb=u.J.extend({g:function(a,c){u.J.call(this,a,c);a.d("timeupdate",u.bind(this,this.xa));a.M(u.bind(this,this.xa))}});
|
67 |
+
t=u.Yb.prototype;t.f={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};t.qc="timeupdate";t.e=function(){return u.J.prototype.e.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})};t.xa=function(){var a=this.a.Mb?this.a.r.currentTime:this.a.currentTime();this.b.setAttribute("aria-valuenow",u.round(100*this.xb(),2));this.b.setAttribute("aria-valuetext",u.Ha(a,this.a.duration()))};
|
68 |
+
t.xb=function(){return this.a.currentTime()/this.a.duration()};t.Ma=function(a){u.J.prototype.Ma.call(this,a);this.a.Mb=f;this.nd=!this.a.paused();this.a.pause()};t.Gb=function(a){a=B(this,a)*this.a.duration();a==this.a.duration()&&(a-=0.1);this.a.currentTime(a)};t.Hb=function(a){u.J.prototype.Hb.call(this,a);this.a.Mb=l;this.nd&&this.a.play()};t.wc=function(){this.a.currentTime(this.a.currentTime()+5)};t.vc=function(){this.a.currentTime(this.a.currentTime()-5)};
|
69 |
+
u.bb=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.d("progress",u.bind(this,this.update))}});u.bb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%</span>'})};u.bb.prototype.update=function(){this.b.style&&(this.b.style.width=u.round(100*G(this.a),2)+"%")};u.Wb=u.c.extend({g:function(a,c){u.c.call(this,a,c)}});
|
70 |
+
u.Wb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%</span>'})};u.hb=u.ha.extend();u.hb.prototype.defaultValue="00:00";u.hb.prototype.e=function(){return u.ha.prototype.e.call(this,"div",{className:"vjs-seek-handle"})};u.kb=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.h&&(a.h.j&&a.h.j.T===l)&&this.p("vjs-hidden");a.d("loadstart",u.bind(this,function(){a.h.j&&a.h.j.T===l?this.p("vjs-hidden"):this.w("vjs-hidden")}))}});
|
71 |
+
u.kb.prototype.f={children:{volumeBar:{}}};u.kb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-volume-control vjs-control"})};u.jb=u.J.extend({g:function(a,c){u.J.call(this,a,c);a.d("volumechange",u.bind(this,this.xa));a.M(u.bind(this,this.xa));setTimeout(u.bind(this,this.update),0)}});t=u.jb.prototype;t.xa=function(){this.b.setAttribute("aria-valuenow",u.round(100*this.a.volume(),2));this.b.setAttribute("aria-valuetext",u.round(100*this.a.volume(),2)+"%")};
|
72 |
+
t.f={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};t.qc="volumechange";t.e=function(){return u.J.prototype.e.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})};t.Gb=function(a){this.a.volume(B(this,a))};t.xb=function(){return this.a.muted()?0:this.a.volume()};t.wc=function(){this.a.volume(this.a.volume()+0.1)};t.vc=function(){this.a.volume(this.a.volume()-0.1)};u.bc=u.c.extend({g:function(a,c){u.c.call(this,a,c)}});
|
73 |
+
u.bc.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};u.lb=u.ha.extend();u.lb.prototype.defaultValue="00:00";u.lb.prototype.e=function(){return u.ha.prototype.e.call(this,"div",{className:"vjs-volume-handle"})};
|
74 |
+
u.fa=u.o.extend({g:function(a,c){u.o.call(this,a,c);a.d("volumechange",u.bind(this,this.update));a.h&&(a.h.j&&a.h.j.T===l)&&this.p("vjs-hidden");a.d("loadstart",u.bind(this,function(){a.h.j&&a.h.j.T===l?this.p("vjs-hidden"):this.w("vjs-hidden")}))}});u.fa.prototype.e=function(){return u.o.prototype.e.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})};u.fa.prototype.n=function(){this.a.muted(this.a.muted()?l:f)};
|
75 |
+
u.fa.prototype.update=function(){var a=this.a.volume(),c=3;0===a||this.a.muted()?c=0:0.33>a?c=1:0.67>a&&(c=2);this.a.muted()?"Unmute"!=this.b.children[0].children[0].innerHTML&&(this.b.children[0].children[0].innerHTML="Unmute"):"Mute"!=this.b.children[0].children[0].innerHTML&&(this.b.children[0].children[0].innerHTML="Mute");for(a=0;4>a;a++)u.w(this.b,"vjs-vol-"+a);u.p(this.b,"vjs-vol-"+c)};
|
76 |
+
u.Ca=u.ea.extend({g:function(a,c){u.ea.call(this,a,c);a.d("volumechange",u.bind(this,this.update));a.h&&(a.h.j&&a.h.j.T===l)&&this.p("vjs-hidden");a.d("loadstart",u.bind(this,function(){a.h.j&&a.h.j.T===l?this.p("vjs-hidden"):this.w("vjs-hidden")}));this.p("vjs-menu-button")}});u.Ca.prototype.Fa=function(){var a=new u.na(this.a,{Ic:"div"}),c=new u.jb(this.a,u.i.B({md:f},this.f.zd));a.X(c);return a};u.Ca.prototype.n=function(){u.fa.prototype.n.call(this);u.ea.prototype.n.call(this)};
|
77 |
+
u.Ca.prototype.e=function(){return u.o.prototype.e.call(this,"div",{className:"vjs-volume-menu-button vjs-menu-button vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})};u.Ca.prototype.update=u.fa.prototype.update;u.eb=u.o.extend({g:function(a,c){u.o.call(this,a,c);(!a.poster()||!a.controls())&&this.v();a.d("play",u.bind(this,this.v))}});
|
78 |
+
u.eb.prototype.e=function(){var a=u.e("div",{className:"vjs-poster",tabIndex:-1}),c=this.a.poster();c&&("backgroundSize"in a.style?a.style.backgroundImage='url("'+c+'")':a.appendChild(u.e("img",{src:c})));return a};u.eb.prototype.n=function(){this.a.play()};
|
79 |
+
u.Vb=u.c.extend({g:function(a,c){u.c.call(this,a,c);a.d("canplay",u.bind(this,this.v));a.d("canplaythrough",u.bind(this,this.v));a.d("playing",u.bind(this,this.v));a.d("seeked",u.bind(this,this.v));a.d("seeking",u.bind(this,this.show));a.d("seeked",u.bind(this,this.v));a.d("error",u.bind(this,this.show));a.d("waiting",u.bind(this,this.show))}});u.Vb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-loading-spinner"})};
|
80 |
+
u.Wa=u.o.extend({g:function(a,c){u.o.call(this,a,c);a.controls()||this.v();a.d("play",u.bind(this,this.v))}});u.Wa.prototype.e=function(){return u.o.prototype.e.call(this,"div",{className:"vjs-big-play-button",innerHTML:"<span></span>","aria-label":"play video"})};u.Wa.prototype.n=function(){this.a.play()};u.q=u.c.extend({g:function(a,c,d){u.c.call(this,a,c,d)}});u.q.prototype.n=u.ab?m():function(){this.a.controls()&&(this.a.paused()?this.a.play():this.a.pause())};u.q.prototype.j={T:f,Ia:l,Lb:l,Ob:l};
|
81 |
+
u.media={};u.media.Va="play pause paused currentTime setCurrentTime duration buffered volume setVolume muted setMuted width height supportsFullScreen enterFullScreen src load currentSrc preload setPreload autoplay setAutoplay loop setLoop error networkState readyState seeking initialTime startOffsetTime played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks defaultPlaybackRate playbackRate mediaGroup controller controls defaultMuted".split(" ");
|
82 |
+
function ea(){var a=u.media.Va[i];return function(){throw Error('The "'+a+"\" method is not available on the playback technology's API");}}for(var i=u.media.Va.length-1;0<=i;i--)u.q.prototype[u.media.Va[i]]=ea();
|
83 |
+
u.m=u.q.extend({g:function(a,c,d){this.j.T=u.m.Hc();this.j.Sc=!u.Ub;this.j.Ia=f;u.q.call(this,a,c,d);(c=c.source)&&this.b.currentSrc==c.src?a.k("loadstart"):c&&(this.b.src=c.src);a.M(function(){this.f.autoplay&&this.paused()&&(this.N.poster=h,this.play())});this.d("click",this.n);for(a=u.m.$a.length-1;0<=a;a--)u.d(this.b,u.m.$a[a],u.bind(this.a,this.Nc));this.Ta()}});t=u.m.prototype;t.C=function(){u.q.prototype.C.call(this)};
|
84 |
+
t.e=function(){var a=this.a,c=a.N;if(!c||this.j.Sc===l)c?(a.s().removeChild(c),c=c.cloneNode(l)):c=u.e("video",{id:a.id()+"_html5_api",className:"vjs-tech"}),c.player=a,u.yb(c,a.s());for(var d=["autoplay","preload","loop","muted"],e=d.length-1;0<=e;e--){var g=d[e];a.f[g]!==h&&(c[g]=a.f[g])}return c};t.Nc=function(a){this.k(a);a.stopPropagation()};t.play=function(){this.b.play()};t.pause=function(){this.b.pause()};t.paused=function(){return this.b.paused};t.currentTime=function(){return this.b.currentTime};
|
85 |
+
t.cd=function(a){try{this.b.currentTime=a}catch(c){u.log(c,"Video is not ready. (Video.js)")}};t.duration=function(){return this.b.duration||0};t.buffered=function(){return this.b.buffered};t.volume=function(){return this.b.volume};t.hd=function(a){this.b.volume=a};t.muted=function(){return this.b.muted};t.fd=function(a){this.b.muted=a};t.width=function(){return this.b.offsetWidth};t.height=function(){return this.b.offsetHeight};
|
86 |
+
t.Sa=function(){return"function"==typeof this.b.webkitEnterFullScreen&&(/Android/.test(u.O)||!/Chrome|Mac OS X 10.5/.test(u.O))?f:l};t.src=function(a){this.b.src=a};t.load=function(){this.b.load()};t.currentSrc=function(){return this.b.currentSrc};t.Oa=function(){return this.b.Oa};t.gd=function(a){this.b.Oa=a};t.autoplay=function(){return this.b.autoplay};t.bd=function(a){this.b.autoplay=a};t.loop=function(){return this.b.loop};t.ed=function(a){this.b.loop=a};t.error=function(){return this.b.error};
|
87 |
+
u.m.isSupported=function(){return!!document.createElement("video").canPlayType};u.m.ob=function(a){return!!document.createElement("video").canPlayType(a.type)};u.m.Hc=function(){var a=u.ib.volume;u.ib.volume=a/2+0.1;return a!==u.ib.volume};u.m.$a="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");
|
88 |
+
u.ab&&3>u.yc&&(document.createElement("video").constructor.prototype.canPlayType=function(a){return a&&-1!=a.toLowerCase().indexOf("video/mp4")?"maybe":""});
|
89 |
+
u.l=u.q.extend({g:function(a,c,d){u.q.call(this,a,c,d);d=c.source;var e=c.parentEl,g=this.b=u.e("div",{id:a.id()+"_temp_flash"}),j=a.id()+"_flash_api";a=a.f;var k=u.i.B({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.Oa,loop:a.loop,muted:a.muted},c.flashVars),q=u.i.B({wmode:"opaque",bgcolor:"#000000"},c.params),n=u.i.B({id:j,name:j,"class":"vjs-tech"},c.attributes);d&&(k.src=encodeURIComponent(u.jc(d.src)));
|
90 |
+
u.yb(g,e);c.startTime&&this.M(function(){this.load();this.play();this.currentTime(c.startTime)});if(c.iFrameMode===f&&!u.zc){var s=u.e("iframe",{id:j+"_iframe",name:j+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});k.readyFunction="ready";k.eventProxyFunction="events";k.errorEventProxyFunction="errors";u.d(s,"load",u.bind(this,function(){var a,d=s.contentWindow;a=s.contentDocument?s.contentDocument:s.contentWindow.document;a.write(u.l.kc(c.swf,k,q,n));d.player=
|
91 |
+
this.a;d.ready=u.bind(this.a,function(c){c=a.getElementById(c);var d=this.h;d.b=c;u.d(c,"click",d.bind(d.n));u.l.qb(d)});d.events=u.bind(this.a,function(a,c){this&&"flash"===this.ba&&this.k(c)});d.errors=u.bind(this.a,function(a,c){u.log("Flash Error",c)})}));g.parentNode.replaceChild(s,g)}else u.l.Mc(c.swf,g,k,q,n)}});t=u.l.prototype;t.C=function(){u.q.prototype.C.call(this)};t.play=function(){this.b.vjs_play()};t.pause=function(){this.b.vjs_pause()};
|
92 |
+
t.src=function(a){a=u.jc(a);this.b.vjs_src(a);if(this.a.autoplay()){var c=this;setTimeout(function(){c.play()},0)}};t.load=function(){this.b.vjs_load()};t.poster=function(){this.b.vjs_getProperty("poster")};t.buffered=function(){return u.tb(0,this.b.vjs_getProperty("buffered"))};t.Sa=r(l);var P=u.l.prototype,Q="preload currentTime defaultPlaybackRate playbackRate autoplay loop mediaGroup controller controls volume muted defaultMuted".split(" "),R="error currentSrc networkState readyState seeking initialTime duration startOffsetTime paused played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks".split(" ");
|
93 |
+
function fa(){var a=Q[S],c=a.charAt(0).toUpperCase()+a.slice(1);P["set"+c]=function(c){return this.b.vjs_setProperty(a,c)}}function T(a){P[a]=function(){return this.b.vjs_getProperty(a)}}var S;for(S=0;S<Q.length;S++)T(Q[S]),fa();for(S=0;S<R.length;S++)T(R[S]);u.l.isSupported=function(){return 10<=u.l.version()[0]};u.l.ob=function(a){if(a.type in u.l.Pc)return"maybe"};u.l.Pc={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"};
|
94 |
+
u.l.onReady=function(a){a=u.s(a);var c=a.player||a.parentNode.player,d=c.h;a.player=c;d.b=a;d.d("click",d.n);u.l.qb(d)};u.l.qb=function(a){a.s().vjs_getProperty?a.Ta():setTimeout(function(){u.l.qb(a)},50)};u.l.onEvent=function(a,c){u.s(a).player.k(c)};u.l.onError=function(a,c){u.s(a).player.k("error");u.log("Flash Error",c,a)};
|
95 |
+
u.l.version=function(){var a="0,0,0";try{a=(new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(c){try{navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(d){}}return a.split(",")};
|
96 |
+
u.l.Mc=function(a,c,d,e,g){a=u.l.kc(a,d,e,g);a=u.e("div",{innerHTML:a}).childNodes[0];d=c.parentNode;c.parentNode.replaceChild(a,c);var j=d.childNodes[0];setTimeout(function(){j.style.display="block"},1E3)};
|
97 |
+
u.l.kc=function(a,c,d,e){var g="",j="",k="";c&&u.i.sa(c,function(a,c){g+=a+"="+c+"&"});d=u.i.B({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);u.i.sa(d,function(a,c){j+='<param name="'+a+'" value="'+c+'" />'});e=u.i.B({data:a,width:"100%",height:"100%"},e);u.i.sa(e,function(a,c){k+=a+'="'+c+'" '});return'<object type="application/x-shockwave-flash"'+k+">"+j+"</object>"};
|
98 |
+
u.Dc=u.c.extend({g:function(a,c,d){u.c.call(this,a,c,d);if(!a.f.sources||0===a.f.sources.length){c=0;for(d=a.f.techOrder;c<d.length;c++){var e=u.Y(d[c]),g=window.videojs[e];if(g&&g.isSupported()){E(a,e);break}}}else a.src(a.f.sources)}});function U(a){a.wa=a.wa||[];return a.wa}function V(a,c,d){for(var e=a.wa,g=0,j=e.length,k,q;g<j;g++)k=e[g],k.id()===c?(k.show(),q=k):d&&(k.H()==d&&0<k.mode())&&k.disable();(c=q?q.H():d?d:l)&&a.k(c+"trackchange")}
|
99 |
+
u.U=u.c.extend({g:function(a,c){u.c.call(this,a,c);this.L=c.id||"vjs_"+c.kind+"_"+c.language+"_"+u.u++;this.uc=c.src;this.Jc=c["default"]||c.dflt;this.kd=c.title;this.ud=c.srclang;this.Rc=c.label;this.ia=[];this.cc=[];this.ka=this.la=0;this.a.d("fullscreenchange",u.bind(this,this.Ec))}});t=u.U.prototype;t.H=p("A");t.src=p("uc");t.ub=p("Jc");t.title=p("kd");t.label=p("Rc");t.readyState=p("la");t.mode=p("ka");t.Ec=function(){this.b.style.fontSize=this.a.F?140*(screen.width/this.a.width())+"%":""};
|
100 |
+
t.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-"+this.A+" vjs-text-track"})};t.show=function(){W(this);this.ka=2;u.c.prototype.show.call(this)};t.v=function(){W(this);this.ka=1;u.c.prototype.v.call(this)};t.disable=function(){2==this.ka&&this.v();this.a.t("timeupdate",u.bind(this,this.update,this.L));this.a.t("ended",u.bind(this,this.reset,this.L));this.reset();this.a.R.textTrackDisplay.removeChild(this);this.ka=0};
|
101 |
+
function W(a){0===a.la&&a.load();0===a.ka&&(a.a.d("timeupdate",u.bind(a,a.update,a.L)),a.a.d("ended",u.bind(a,a.reset,a.L)),("captions"===a.A||"subtitles"===a.A)&&a.a.R.textTrackDisplay.X(a))}t.load=function(){0===this.la&&(this.la=1,u.get(this.uc,u.bind(this,this.Zc),u.bind(this,this.Fb)))};t.Fb=function(a){this.error=a;this.la=3;this.k("error")};
|
102 |
+
t.Zc=function(a){var c,d;a=a.split("\n");for(var e="",g=1,j=a.length;g<j;g++)if(e=u.trim(a[g])){-1==e.indexOf("--\x3e")?(c=e,e=u.trim(a[++g])):c=this.ia.length;c={id:c,index:this.ia.length};d=e.split(" --\x3e ");c.startTime=X(d[0]);c.ta=X(d[1]);for(d=[];a[++g]&&(e=u.trim(a[g]));)d.push(e);c.text=d.join("<br/>");this.ia.push(c)}this.la=2;this.k("loaded")};
|
103 |
+
function X(a){var c=a.split(":");a=0;var d,e,g;3==c.length?(d=c[0],e=c[1],c=c[2]):(d=0,e=c[0],c=c[1]);c=c.split(/\s+/);c=c.splice(0,1)[0];c=c.split(/\.|,/);g=parseFloat(c[1]);c=c[0];a+=3600*parseFloat(d);a+=60*parseFloat(e);a+=parseFloat(c);g&&(a+=g/1E3);return a}
|
104 |
+
t.update=function(){if(0<this.ia.length){var a=this.a.currentTime();if(this.Kb===b||a<this.Kb||this.Ja<=a){var c=this.ia,d=this.a.duration(),e=0,g=l,j=[],k,q,n,s;a>=this.Ja||this.Ja===b?s=this.vb!==b?this.vb:0:(g=f,s=this.Cb!==b?this.Cb:c.length-1);for(;;){n=c[s];if(n.ta<=a)e=Math.max(e,n.ta),n.Da&&(n.Da=l);else if(a<n.startTime){if(d=Math.min(d,n.startTime),n.Da&&(n.Da=l),!g)break}else g?(j.splice(0,0,n),q===b&&(q=s),k=s):(j.push(n),k===b&&(k=s),q=s),d=Math.min(d,n.ta),e=Math.max(e,n.startTime),
|
105 |
+
n.Da=f;if(g)if(0===s)break;else s--;else if(s===c.length-1)break;else s++}this.cc=j;this.Ja=d;this.Kb=e;this.vb=k;this.Cb=q;a=this.cc;c="";d=0;for(e=a.length;d<e;d++)c+='<span class="vjs-tt-cue">'+a[d].text+"</span>";this.b.innerHTML=c;this.k("cuechange")}}};t.reset=function(){this.Ja=0;this.Kb=this.a.duration();this.Cb=this.vb=0};u.Rb=u.U.extend();u.Rb.prototype.A="captions";u.Zb=u.U.extend();u.Zb.prototype.A="subtitles";u.Tb=u.U.extend();u.Tb.prototype.A="chapters";
|
106 |
+
u.$b=u.c.extend({g:function(a,c,d){u.c.call(this,a,c,d);if(a.f.tracks&&0<a.f.tracks.length){c=this.a;a=a.f.tracks;var e;for(d=0;d<a.length;d++){e=a[d];var g=c,j=e.kind,k=e.label,q=e.language,n=e;e=g.wa=g.wa||[];n=n||{};n.kind=j;n.label=k;n.language=q;j=u.Y(j||"subtitles");g=new window.videojs[j+"Track"](g,n);e.push(g)}}}});u.$b.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-text-track-display"})};
|
107 |
+
u.W=u.I.extend({g:function(a,c){var d=this.ca=c.track;c.label=d.label();c.selected=d.ub();u.I.call(this,a,c);this.a.d(d.H()+"trackchange",u.bind(this,this.update))}});u.W.prototype.n=function(){u.I.prototype.n.call(this);V(this.a,this.ca.L,this.ca.H())};u.W.prototype.update=function(){2==this.ca.mode()?this.selected(f):this.selected(l)};u.cb=u.W.extend({g:function(a,c){c.track={H:function(){return c.kind},pc:a,label:function(){return c.kind+" off"},ub:r(l),mode:r(l)};u.W.call(this,a,c);this.selected(f)}});
|
108 |
+
u.cb.prototype.n=function(){u.W.prototype.n.call(this);V(this.a,this.ca.L,this.ca.H())};u.cb.prototype.update=function(){for(var a=U(this.a),c=0,d=a.length,e,g=f;c<d;c++)e=a[c],e.H()==this.ca.H()&&2==e.mode()&&(g=l);g?this.selected(f):this.selected(l)};u.V=u.ea.extend({g:function(a,c){u.ea.call(this,a,c);1>=this.G.length&&this.v()}});
|
109 |
+
u.V.prototype.sb=function(){var a=[],c;a.push(new u.cb(this.a,{kind:this.A}));for(var d=0;d<U(this.a).length;d++)c=U(this.a)[d],c.H()===this.A&&a.push(new u.W(this.a,{track:c}));return a};u.za=u.V.extend({g:function(a,c,d){u.V.call(this,a,c,d);this.b.setAttribute("aria-label","Captions Menu")}});u.za.prototype.A="captions";u.za.prototype.pa="Captions";u.za.prototype.className="vjs-captions-button";u.Ba=u.V.extend({g:function(a,c,d){u.V.call(this,a,c,d);this.b.setAttribute("aria-label","Subtitles Menu")}});
|
110 |
+
u.Ba.prototype.A="subtitles";u.Ba.prototype.pa="Subtitles";u.Ba.prototype.className="vjs-subtitles-button";u.Sb=u.V.extend({g:function(a,c,d){u.V.call(this,a,c,d);this.b.setAttribute("aria-label","Chapters Menu")}});t=u.Sb.prototype;t.A="chapters";t.pa="Chapters";t.className="vjs-chapters-button";t.sb=function(){for(var a=[],c,d=0;d<U(this.a).length;d++)c=U(this.a)[d],c.H()===this.A&&a.push(new u.W(this.a,{track:c}));return a};
|
111 |
+
t.Fa=function(){for(var a=U(this.a),c=0,d=a.length,e,g,j=this.G=[];c<d;c++)if(e=a[c],e.H()==this.A&&e.ub()){if(2>e.readyState()){this.sd=e;e.d("loaded",u.bind(this,this.Fa));return}g=e;break}a=this.ua=new u.na(this.a);a.b.appendChild(u.e("li",{className:"vjs-menu-title",innerHTML:u.Y(this.A),jd:-1}));if(g){e=g.ia;for(var k,c=0,d=e.length;c<d;c++)k=e[c],k=new u.Xa(this.a,{track:g,cue:k}),j.push(k),a.X(k)}0<this.G.length&&this.show();return a};
|
112 |
+
u.Xa=u.I.extend({g:function(a,c){var d=this.ca=c.track,e=this.cue=c.cue,g=a.currentTime();c.label=e.text;c.selected=e.startTime<=g&&g<e.ta;u.I.call(this,a,c);d.d("cuechange",u.bind(this,this.update))}});u.Xa.prototype.n=function(){u.I.prototype.n.call(this);this.a.currentTime(this.cue.startTime);this.update(this.cue.startTime)};u.Xa.prototype.update=function(){var a=this.cue,c=this.a.currentTime();a.startTime<=c&&c<a.ta?this.selected(f):this.selected(l)};
|
113 |
+
u.i.B(u.da.prototype.f.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});
|
114 |
+
if("undefined"!==typeof window.JSON&&"function"===window.JSON.parse)u.JSON=window.JSON;else{u.JSON={};var Y=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;u.JSON.parse=function(a,c){function d(a,e){var k,q,n=a[e];if(n&&"object"===typeof n)for(k in n)Object.prototype.hasOwnProperty.call(n,k)&&(q=d(n,k),q!==b?n[k]=q:delete n[k]);return c.call(a,e,n)}var e;a=String(a);Y.lastIndex=0;Y.test(a)&&(a=a.replace(Y,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
|
115 |
+
if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof c?d({"":e},""):e;throw new SyntaxError("JSON.parse(): invalid or malformed JSON data");}}
|
116 |
+
u.dc=function(){var a,c,d=document.getElementsByTagName("video");if(d&&0<d.length)for(var e=0,g=d.length;e<g;e++)if((c=d[e])&&c.getAttribute)c.player===b&&(a=c.getAttribute("data-setup"),a!==h&&(a=u.JSON.parse(a||"{}"),v(c,a)));else{u.mb();break}else u.od||u.mb()};u.mb=function(){setTimeout(u.dc,1)};u.Q(window,"load",function(){u.od=f});u.mb();u.$c=function(a,c){u.ga.prototype[a]=c};var Z=this;Z.pd=f;function $(a,c){var d=a.split("."),e=Z;!(d[0]in e)&&e.execScript&&e.execScript("var "+d[0]);for(var g;d.length&&(g=d.shift());)!d.length&&c!==b?e[g]=c:e=e[g]?e[g]:e[g]={}};$("videojs",u);$("_V_",u);$("videojs.options",u.options);$("videojs.cache",u.qa);$("videojs.Component",u.c);u.c.prototype.dispose=u.c.prototype.C;u.c.prototype.createEl=u.c.prototype.e;u.c.prototype.el=u.c.prototype.s;u.c.prototype.addChild=u.c.prototype.X;u.c.prototype.children=u.c.prototype.children;u.c.prototype.on=u.c.prototype.d;u.c.prototype.off=u.c.prototype.t;u.c.prototype.one=u.c.prototype.Q;u.c.prototype.trigger=u.c.prototype.k;u.c.prototype.triggerReady=u.c.prototype.Ta;
|
117 |
+
u.c.prototype.show=u.c.prototype.show;u.c.prototype.hide=u.c.prototype.v;u.c.prototype.width=u.c.prototype.width;u.c.prototype.height=u.c.prototype.height;u.c.prototype.dimensions=u.c.prototype.Kc;u.c.prototype.ready=u.c.prototype.M;$("videojs.Player",u.ga);u.ga.prototype.dispose=u.ga.prototype.C;$("videojs.MediaLoader",u.Dc);$("videojs.TextTrackDisplay",u.$b);$("videojs.ControlBar",u.da);$("videojs.Button",u.o);$("videojs.PlayToggle",u.Xb);$("videojs.FullscreenToggle",u.Aa);
|
118 |
+
$("videojs.BigPlayButton",u.Wa);$("videojs.LoadingSpinner",u.Vb);$("videojs.CurrentTimeDisplay",u.Ya);$("videojs.DurationDisplay",u.Za);$("videojs.TimeDivider",u.ac);$("videojs.RemainingTimeDisplay",u.gb);$("videojs.Slider",u.J);$("videojs.ProgressControl",u.fb);$("videojs.SeekBar",u.Yb);$("videojs.LoadProgressBar",u.bb);$("videojs.PlayProgressBar",u.Wb);$("videojs.SeekHandle",u.hb);$("videojs.VolumeControl",u.kb);$("videojs.VolumeBar",u.jb);$("videojs.VolumeLevel",u.bc);
|
119 |
+
$("videojs.VolumeHandle",u.lb);$("videojs.MuteToggle",u.fa);$("videojs.PosterImage",u.eb);$("videojs.Menu",u.na);$("videojs.MenuItem",u.I);$("videojs.SubtitlesButton",u.Ba);$("videojs.CaptionsButton",u.za);$("videojs.ChaptersButton",u.Sb);$("videojs.MediaTechController",u.q);u.q.prototype.features=u.q.prototype.j;u.q.prototype.j.volumeControl=u.q.prototype.j.T;u.q.prototype.j.fullscreenResize=u.q.prototype.j.Ia;u.q.prototype.j.progressEvents=u.q.prototype.j.Lb;u.q.prototype.j.timeupdateEvents=u.q.prototype.j.Ob;
|
120 |
+
$("videojs.Html5",u.m);u.m.Events=u.m.$a;u.m.isSupported=u.m.isSupported;u.m.canPlaySource=u.m.ob;u.m.prototype.setCurrentTime=u.m.prototype.cd;u.m.prototype.setVolume=u.m.prototype.hd;u.m.prototype.setMuted=u.m.prototype.fd;u.m.prototype.setPreload=u.m.prototype.gd;u.m.prototype.setAutoplay=u.m.prototype.bd;u.m.prototype.setLoop=u.m.prototype.ed;$("videojs.Flash",u.l);u.l.isSupported=u.l.isSupported;u.l.canPlaySource=u.l.ob;u.l.onReady=u.l.onReady;$("videojs.TextTrack",u.U);u.U.prototype.label=u.U.prototype.label;
|
121 |
+
$("videojs.CaptionsTrack",u.Rb);$("videojs.SubtitlesTrack",u.Zb);$("videojs.ChaptersTrack",u.Tb);$("videojs.autoSetup",u.dc);$("videojs.plugin",u.$c);$("videojs.createTimeRange",u.tb);})();//@ sourceMappingURL=video.js.map
|