Comparar commits
56 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| 88f59d7ad6 | |||
| 1c84f37fa0 | |||
| 7d4b26625f | |||
| 7ead5f708f | |||
| 16640274d7 | |||
| 5f7ae5a7ba | |||
| f3925c7364 | |||
| c90d7d36f6 | |||
| 6f069b765c | |||
| a6fa0dcc80 | |||
| e72d682028 | |||
| 599217f158 | |||
| e60f2eef5c | |||
| 7caa2fc1a7 | |||
| c0f91674e4 | |||
| e6897b6219 | |||
| 65e4b9f167 | |||
| 011861bbdb | |||
| df1944e9ff | |||
| 1aabc440b6 | |||
| c5bd01160a | |||
| 82aa55795e | |||
| 7c27add29d | |||
| 11b592ae01 | |||
| c4b4ebea4a | |||
| 1f33546f90 | |||
| 521f0eb941 | |||
| 22aa758067 | |||
| 537ae2b805 | |||
| fc0d37daec | |||
| 2a9f1cdaac | |||
| 87e25dd38e | |||
| 16321d6208 | |||
| 34a8d64c04 | |||
| 58c081f154 | |||
| 68ad48d8e8 | |||
| 49f58e0bbd | |||
| f716807852 | |||
| 6d65871cb0 | |||
| 055d81dc3a | |||
| 760eb308db | |||
| 03059c17d8 | |||
| 5ee97ea9a1 | |||
| 5761ab33bd | |||
| c19a3f3f48 | |||
| a888108e2c | |||
| a1eb8dd975 | |||
| 21f2d3c150 | |||
| dd0c7efa60 | |||
| ec61386f47 | |||
| 98edeccb3f | |||
| 342bdce748 | |||
| 0b4737d209 | |||
| 3cfbf94245 | |||
| e4a0d264d6 | |||
| 7f4e6eb432 |
@@ -6,6 +6,20 @@ _(none)_
|
||||
|
||||
--------------------
|
||||
|
||||
## 4.8.0 (2014-09-03)
|
||||
* @andekande added a German translation ([view](https://github.com/videojs/video.js/pull/1426))
|
||||
* @mattosborn fixed a bug where getting the video element src would overwrite it ([view](https://github.com/videojs/video.js/pull/1430))
|
||||
* @songpete fixed a bug where keyboard events were bubbling and causing additional actions ([view](https://github.com/videojs/video.js/pull/1455))
|
||||
* @knabar made the inactivity timeout configurable ([view](https://github.com/videojs/video.js/pull/1409))
|
||||
* @seniorflexdeveloper added language files to the distribution for including specific languages ([view](https://github.com/videojs/video.js/pull/1453))
|
||||
* @gkatsev improved handling of null and NaN dimension values ([view](https://github.com/videojs/video.js/pull/1449))
|
||||
* @gkatsev fixed an issue where the controls would break if Flash was initialized too quickly ([view](https://github.com/videojs/video.js/pull/1470))
|
||||
* @mmcc fixed an issue where if no playback tech was supported the error could not be caught ([view](https://github.com/videojs/video.js/pull/1473))
|
||||
|
||||
## 4.7.3 (2014-08-20)
|
||||
* Added function for adding new language translations, updated docs, and fixed the notSupportedMessage translation ([view](https://github.com/videojs/video.js/pull/1427))
|
||||
* Exposed the player.selectSource method to allow overriding the source selection order ([view](https://github.com/videojs/video.js/pull/1424))
|
||||
|
||||
## 4.7.2 (2014-08-14)
|
||||
* Fixed a case where timeupdate events were not firing, and fixed and issue with the Flash player version ([view](https://github.com/videojs/video.js/pull/1417))
|
||||
|
||||
|
||||
+1
-5
@@ -148,12 +148,8 @@ grunt
|
||||
grunt test
|
||||
```
|
||||
|
||||
Video.js is also configured to run tests with Karma. Karma is installed as a grunt plugin to run QUnit tests in real browsers, as opposed to simply running the tests in phantomjs, a headless browser.
|
||||
Video.js is also configured to run tests with Karma. Karma is installed as a grunt plugin to run QUnit tests in real browsers, as opposed to simply running the tests in phantomjs, a headless browser. To run the tests with Karma:
|
||||
|
||||
To run the QUnit test suite in Karma, do the following:
|
||||
1. Copy test/karma.conf.js.example and rename the copy test/karma.conf.js. Please note that if you decide to name the file something other than karma.conf.js, or if you decide to change the location of your conf.js file from the test/ folder, you will need to change references to karma.conf.js in Gruntfile and .gitignore to your new file name and location, so that you don't inadvertently add your conf.js file to any of your video.js pull requests.
|
||||
2. Open test/karma.conf.js in an editor, and configure the properties in it as desired. At a minimum, you'll want to add the browsers that you want to run your tests in. The karma.conf.js.example file has detailed information on usage in the file itself.
|
||||
After you've configured the desired properties in your karma.conf.js, run:
|
||||
```bash
|
||||
grunt karma:dev
|
||||
```
|
||||
|
||||
+20
-26
@@ -31,9 +31,6 @@ module.exports = function(grunt) {
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
pkg: pkg,
|
||||
lang: {
|
||||
src: 'lang/*.json'
|
||||
},
|
||||
build: {
|
||||
src: 'src/js/dependencies.js',
|
||||
options: {
|
||||
@@ -258,6 +255,13 @@ module.exports = function(grunt) {
|
||||
}
|
||||
}
|
||||
},
|
||||
vjslanguages: {
|
||||
defaults: {
|
||||
files: {
|
||||
'build/files/lang': ['lang/*.json']
|
||||
}
|
||||
}
|
||||
},
|
||||
zip: {
|
||||
dist: {
|
||||
router: function (filepath) {
|
||||
@@ -312,6 +316,7 @@ module.exports = function(grunt) {
|
||||
}
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks('grunt-videojs-languages');
|
||||
grunt.loadNpmTasks('grunt-contrib-connect');
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-qunit');
|
||||
@@ -333,11 +338,11 @@ module.exports = function(grunt) {
|
||||
// grunt.loadTasks('./docs/tasks/');
|
||||
// grunt.loadTasks('../videojs-doc-generator/tasks/');
|
||||
|
||||
grunt.registerTask('pretask', ['jshint', 'less', 'lang', 'build', 'minify', 'usebanner']);
|
||||
grunt.registerTask('pretask', ['jshint', 'less', 'vjslanguages', 'build', 'minify', 'usebanner']);
|
||||
// Default task.
|
||||
grunt.registerTask('default', ['pretask', 'dist']);
|
||||
// Development watch task
|
||||
grunt.registerTask('dev', ['jshint', 'less', 'lang', 'build', 'qunit:source']);
|
||||
grunt.registerTask('dev', ['jshint', 'less', 'vjslanguages', 'build', 'qunit:source']);
|
||||
grunt.registerTask('test-qunit', ['pretask', 'qunit']);
|
||||
|
||||
// The test task will run `karma:saucelabs` when running in travis,
|
||||
@@ -424,24 +429,7 @@ module.exports = function(grunt) {
|
||||
}
|
||||
});
|
||||
|
||||
var fs = require('fs'),
|
||||
gzip = require('zlib').gzip;
|
||||
|
||||
grunt.registerMultiTask('lang', 'Building Language Support', function() {
|
||||
var combined = '';
|
||||
|
||||
grunt.log.writeln('Building Language Support');
|
||||
|
||||
// Create a combined languages file
|
||||
this.files.forEach(function(file) {
|
||||
file.src.forEach(function(src){
|
||||
var code = src.replace('lang/', '').replace('.json', '');
|
||||
combined += 'videojs.options[\'languages\'][\''+code+'\'] = '+ grunt.file.read(src).trim() + ';\n';
|
||||
});
|
||||
});
|
||||
|
||||
grunt.file.write('build/files/combined.languages.js', combined);
|
||||
});
|
||||
var fs = require('fs');
|
||||
|
||||
grunt.registerMultiTask('build', 'Building Source', function(){
|
||||
|
||||
@@ -459,9 +447,6 @@ module.exports = function(grunt) {
|
||||
// Replace CDN version ref in js. Use major/minor version.
|
||||
combined = combined.replace(/GENERATED_CDN_VSN/g, version.majorMinor);
|
||||
|
||||
// Add Combined Langauges
|
||||
// combined += grunt.file.read('build/files/combined.languages.js');
|
||||
|
||||
grunt.file.write('build/files/combined.video.js', combined);
|
||||
|
||||
// Copy over other files
|
||||
@@ -561,6 +546,15 @@ module.exports = function(grunt) {
|
||||
}
|
||||
});
|
||||
|
||||
// Copy over language files
|
||||
grunt.file.recurse('build/files/lang', function(absdir, rootdir, subdir, filename) {
|
||||
// Block .DS_Store files
|
||||
if ('filename'.substring(0,1) !== '.') {
|
||||
grunt.file.copy(absdir, 'dist/cdn/lang/' + filename);
|
||||
grunt.file.copy(absdir, 'dist/video-js/lang/' + filename);
|
||||
}
|
||||
});
|
||||
|
||||
// ds_store files sometime find their way in
|
||||
if (grunt.file.exists('dist/video-js/.DS_Store')) {
|
||||
grunt.file['delete']('dist/video-js/.DS_Store');
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "video.js",
|
||||
"description": "An HTML5 and Flash video player with a common API and skin for both.",
|
||||
"version": "4.7.2",
|
||||
"version": "4.8.0",
|
||||
"main": [
|
||||
"dist/video-js/video.js",
|
||||
"dist/video-js/video-js.css"
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "video.js",
|
||||
"description": "An HTML5 and Flash video player with a common API and skin for both.",
|
||||
"version": "4.7.2",
|
||||
"version": "4.8.0",
|
||||
"keywords": [
|
||||
"videojs",
|
||||
"html5",
|
||||
|
||||
+2
-10
@@ -151,16 +151,8 @@
|
||||
"steps": [
|
||||
[ "git diff --exit-code", "Ensure there's no unadded changes" ],
|
||||
[ "git diff --cached --exit-code", "Ensure there's no added changes" ],
|
||||
{ "confirm": "Have the changes been merged into the release branch (stable)?" },
|
||||
{
|
||||
"id": "type",
|
||||
"desc": "Provide the release type",
|
||||
"prompt": {
|
||||
"message": "release type",
|
||||
"default": "patch",
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{ "prompt": "confirm", "desc": "Have the changes been merged into the release branch (stable)?" },
|
||||
{ "prompt": "text", "desc": "Provide the release type (major, minor, patch)", "id": "type" },
|
||||
[ "git checkout stable", "Checkout the release branch" ],
|
||||
[ "git pull upstream stable", "Update the release branch" ],
|
||||
[ "grunt test", "Run tests" ],
|
||||
|
||||
externo
+26
@@ -0,0 +1,26 @@
|
||||
videojs.addLanguage("de",{
|
||||
"Play": "abspielen",
|
||||
"Pause": "pausieren",
|
||||
"Current Time": "aktueller Zeitpunkt",
|
||||
"Duration Time": "gesamte Laufzeit",
|
||||
"Remaining Time": "verbleibende Laufzeit",
|
||||
"Stream Type": "Übertragungstyp",
|
||||
"LIVE": "LIVE",
|
||||
"Loaded": "geladen",
|
||||
"Progress": "Fortschritt",
|
||||
"Fullscreen": "Vollbildschirm AN",
|
||||
"Non-Fullscreen": "Vollbildschirm AUS",
|
||||
"Mute": "Ton AUS",
|
||||
"Unmuted": "Ton AN",
|
||||
"Playback Rate": "Wiedergabegeschwindigkeit",
|
||||
"Subtitles": "Untertitel AN",
|
||||
"subtitles off": "Untertitel AUS",
|
||||
"Captions": "Titel AN",
|
||||
"captions off": "Titel AUS",
|
||||
"Chapters": "Kapitel",
|
||||
"You aborted the video playback": "Sie haben die Video-Wiedergabe abgebrochen.",
|
||||
"A network error caused the video download to fail part-way.": "Ein Fehler bei der Verbindung verursachte eine Unterbrechung mitten im Download.",
|
||||
"The video could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, entweder weil der Server bzw. die Verbindung gestört ist, oder weil das Format nicht kompatibel ist.",
|
||||
"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.": "Die Wiedergabe des Videos wurde unterbrochen. Entweder ist das Video beschädigt oder es benutzt ein Feature welches von diesem Browser nicht unterstützt wird.",
|
||||
"No compatible source was found for this video.": "Für dieses Video wurde keine kompatible Quelle gefunden."
|
||||
});
|
||||
externo
+26
@@ -0,0 +1,26 @@
|
||||
videojs.addLanguage("es",{
|
||||
"Play": "Juego",
|
||||
"Pause": "Pausa",
|
||||
"Current Time": "Tiempo Actual",
|
||||
"Duration Time": "Tiempo de Duracion",
|
||||
"Remaining Time": "Tiempo Restante",
|
||||
"Stream Type": "Tipo de Transmision",
|
||||
"LIVE": "En Vivo",
|
||||
"Loaded": "Cargado",
|
||||
"Progress": "Progreso",
|
||||
"Fullscreen": "Pantalla Completa",
|
||||
"Non-Fullscreen": "No Pantalla Completa",
|
||||
"Mute": "Mudo",
|
||||
"Unmuted": "Activar sonido",
|
||||
"Playback Rate": "Reproduccion Cambio",
|
||||
"Subtitles": "Subtitulos",
|
||||
"subtitles off": "subtitulos fuera",
|
||||
"Captions": "Subtitulos",
|
||||
"captions off": "subtitulos fuera",
|
||||
"Chapters": "Capitulos",
|
||||
"You aborted the video playback": "Ha anulado la reproduccion de video",
|
||||
"A network error caused the video download to fail part-way.": "Un error en la red hizo que la descarga de video falle parte del camino.",
|
||||
"The video could not be loaded, either because the server or network failed or because the format is not supported.": "El video no se puede cargar, ya sea porque el servidor o la red fracasaron o porque el formato no es compatible.",
|
||||
"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.": "La reproduccion de video se ha cancelado debido a un problema de corrupcion o porque el video utilizado cuenta con su navegador no soporta.",
|
||||
"No compatible source was found for this video.": "Ninguna fuente compatible se encontro para este video."
|
||||
});
|
||||
externo
+1
-1
@@ -1,6 +1,6 @@
|
||||
/*!
|
||||
Video.js Default Styles (http://videojs.com)
|
||||
Version 4.7.2
|
||||
Version 4.8.0
|
||||
Create your own skin at http://designer.videojs.com
|
||||
*/
|
||||
/* SKIN
|
||||
|
||||
externo
+1
-1
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+92
-49
@@ -63,7 +63,7 @@ var vjs = function(id, options, ready){
|
||||
var videojs = window['videojs'] = vjs;
|
||||
|
||||
// CDN Version. Used to target right flash swf.
|
||||
vjs.CDN_VERSION = '4.7';
|
||||
vjs.CDN_VERSION = '4.8';
|
||||
vjs.ACCESS_PROTOCOL = ('https:' == document.location.protocol ? 'https://' : 'http://');
|
||||
|
||||
/**
|
||||
@@ -92,6 +92,9 @@ vjs.options = {
|
||||
// Add playback rate selection by adding rates
|
||||
// 'playbackRates': [0.5, 1, 1.5, 2],
|
||||
|
||||
// default inactivity timeout
|
||||
'inactivityTimeout': 2000,
|
||||
|
||||
// Included control sets
|
||||
'children': {
|
||||
'mediaLoader': {},
|
||||
@@ -113,11 +116,30 @@ vjs.options = {
|
||||
};
|
||||
|
||||
// Set CDN Version of swf
|
||||
// The added (+) blocks the replace from changing this 4.7 string
|
||||
// The added (+) blocks the replace from changing this 4.8 string
|
||||
if (vjs.CDN_VERSION !== 'GENERATED'+'_CDN_VSN') {
|
||||
videojs.options['flash']['swf'] = vjs.ACCESS_PROTOCOL + 'vjs.zencdn.net/'+vjs.CDN_VERSION+'/video-js.swf';
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function for adding languages to the default options. Useful for
|
||||
* amending multiple language support at runtime.
|
||||
*
|
||||
* Example: vjs.addLanguage('es', {'Hello':'Hola'});
|
||||
*
|
||||
* @param {String} code The language code or dictionary property
|
||||
* @param {Object} data The data values to be translated
|
||||
* @return {Object} The resulting global languages dictionary object
|
||||
*/
|
||||
vjs.addLanguage = function(code, data){
|
||||
if(vjs.options['languages'][code] !== undefined) {
|
||||
vjs.options['languages'][code] = vjs.util.mergeOptions(vjs.options['languages'][code], data);
|
||||
} else {
|
||||
vjs.options['languages'][code] = data;
|
||||
}
|
||||
return vjs.options['languages'];
|
||||
};
|
||||
|
||||
/**
|
||||
* Global player list
|
||||
* @type {Object}
|
||||
@@ -817,6 +839,17 @@ vjs.obj.isArray = Array.isArray || function(arr) {
|
||||
return Object.prototype.toString.call(arr) === '[object Array]';
|
||||
};
|
||||
|
||||
/**
|
||||
* Check to see whether the input is NaN or not.
|
||||
* NaN is the only JavaScript construct that isn't equal to itself
|
||||
* @param {Number} num Number to check
|
||||
* @return {Boolean} True if NaN, false otherwise
|
||||
* @private
|
||||
*/
|
||||
vjs.isNaN = function(num) {
|
||||
return num !== num;
|
||||
};
|
||||
|
||||
/**
|
||||
* Bind (a.k.a proxy or Context). A simple method for changing the context of a function
|
||||
It also stores a unique id on the function so it can be easily removed from events
|
||||
@@ -1551,7 +1584,7 @@ vjs.util = {};
|
||||
vjs.util.mergeOptions = function(obj1, obj2){
|
||||
var key, val1, val2;
|
||||
|
||||
// make a copy of obj1 so we're not ovewriting original values.
|
||||
// make a copy of obj1 so we're not overwriting original values.
|
||||
// like prototype.options_ and all sub options objects
|
||||
obj1 = vjs.obj.copy(obj1);
|
||||
|
||||
@@ -1569,10 +1602,7 @@ vjs.util.mergeOptions = function(obj1, obj2){
|
||||
}
|
||||
}
|
||||
return obj1;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
};/**
|
||||
* @fileoverview Player Component - Base class for all UI objects
|
||||
*
|
||||
*/
|
||||
@@ -2380,6 +2410,9 @@ vjs.Component.prototype.dimensions = function(width, height){
|
||||
*/
|
||||
vjs.Component.prototype.dimension = function(widthOrHeight, num, skipListeners){
|
||||
if (num !== undefined) {
|
||||
if (num === null || vjs.isNaN(num)) {
|
||||
num = 0;
|
||||
}
|
||||
|
||||
// Check if using css width/height (% or px) and adjust
|
||||
if ((''+num).indexOf('%') !== -1 || (''+num).indexOf('px') !== -1) {
|
||||
@@ -2628,7 +2661,7 @@ vjs.Button.prototype.onClick = function(){};
|
||||
|
||||
// Focus - Add keyboard functionality to element
|
||||
vjs.Button.prototype.onFocus = function(){
|
||||
vjs.on(document, 'keyup', vjs.bind(this, this.onKeyPress));
|
||||
vjs.on(document, 'keydown', vjs.bind(this, this.onKeyPress));
|
||||
};
|
||||
|
||||
// KeyPress (document level) - Trigger click when keys are pressed
|
||||
@@ -2642,7 +2675,7 @@ vjs.Button.prototype.onKeyPress = function(event){
|
||||
|
||||
// Blur - Remove keyboard triggers
|
||||
vjs.Button.prototype.onBlur = function(){
|
||||
vjs.off(document, 'keyup', vjs.bind(this, this.onKeyPress));
|
||||
vjs.off(document, 'keydown', vjs.bind(this, this.onKeyPress));
|
||||
};
|
||||
/* Slider
|
||||
================================================================================ */
|
||||
@@ -3598,7 +3631,6 @@ vjs.Player.prototype.unloadTech = function(){
|
||||
// vjs.log('loadedTech')
|
||||
// },
|
||||
|
||||
|
||||
// /* Player event handlers (how the player reacts to certain events)
|
||||
// ================================================================================ */
|
||||
|
||||
@@ -4416,7 +4448,11 @@ vjs.Player.prototype.sourceList_ = function(sources){
|
||||
this.loadTech(sourceTech.tech, sourceTech.source);
|
||||
}
|
||||
} else {
|
||||
this.error({ code: 4, message: this.options()['notSupportedMessage'] });
|
||||
// We need to wrap this in a timeout to give folks a chance to add error event handlers
|
||||
setTimeout(vjs.bind(this, function() {
|
||||
this.error({ code: 4, message: this.localize(this.options()['notSupportedMessage']) });
|
||||
}), 0);
|
||||
|
||||
// we could not find an appropriate tech, but let's still notify the delegate that this is it
|
||||
// this needs a better comment about why this is needed
|
||||
this.triggerReady();
|
||||
@@ -4751,16 +4787,19 @@ vjs.Player.prototype.listenForUserActivity = function(){
|
||||
// Clear any existing inactivity timeout to start the timer over
|
||||
clearTimeout(inactivityTimeout);
|
||||
|
||||
// In X seconds, if no more activity has occurred the user will be
|
||||
// considered inactive
|
||||
inactivityTimeout = setTimeout(vjs.bind(this, function() {
|
||||
// Protect against the case where the inactivityTimeout can trigger just
|
||||
// before the next user activity is picked up by the activityCheck loop
|
||||
// causing a flicker
|
||||
if (!this.userActivity_) {
|
||||
this.userActive(false);
|
||||
}
|
||||
}), 2000);
|
||||
var timeout = this.options()['inactivityTimeout'];
|
||||
if (timeout > 0) {
|
||||
// In <timeout> milliseconds, if no more activity has occurred the
|
||||
// user will be considered inactive
|
||||
inactivityTimeout = setTimeout(vjs.bind(this, function () {
|
||||
// Protect against the case where the inactivityTimeout can trigger just
|
||||
// before the next user activity is picked up by the activityCheck loop
|
||||
// causing a flicker
|
||||
if (!this.userActivity_) {
|
||||
this.userActive(false);
|
||||
}
|
||||
}), timeout);
|
||||
}
|
||||
}
|
||||
}), 250);
|
||||
|
||||
@@ -4777,7 +4816,7 @@ vjs.Player.prototype.playbackRate = function(rate) {
|
||||
return this;
|
||||
}
|
||||
|
||||
if (this.tech && this.tech.features && this.tech.features['playbackRate']) {
|
||||
if (this.tech && this.tech['featuresPlaybackRate']) {
|
||||
return this.techGet('playbackRate');
|
||||
} else {
|
||||
return 1.0;
|
||||
@@ -5319,11 +5358,11 @@ vjs.VolumeControl = vjs.Component.extend({
|
||||
vjs.Component.call(this, player, options);
|
||||
|
||||
// hide volume controls when they're not supported by the current tech
|
||||
if (player.tech && player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech && player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
}
|
||||
player.on('loadstart', vjs.bind(this, function(){
|
||||
if (player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
} else {
|
||||
this.removeClass('vjs-hidden');
|
||||
@@ -5461,11 +5500,11 @@ vjs.MuteToggle = vjs.Button.extend({
|
||||
player.on('volumechange', vjs.bind(this, this.update));
|
||||
|
||||
// hide mute toggle if the current tech doesn't support volume control
|
||||
if (player.tech && player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech && player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
}
|
||||
player.on('loadstart', vjs.bind(this, function(){
|
||||
if (player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
} else {
|
||||
this.removeClass('vjs-hidden');
|
||||
@@ -5529,11 +5568,11 @@ vjs.VolumeMenuButton = vjs.MenuButton.extend({
|
||||
player.on('volumechange', vjs.bind(this, this.update));
|
||||
|
||||
// hide mute toggle if the current tech doesn't support volume control
|
||||
if (player.tech && player.tech.features && player.tech.features.volumeControl === false) {
|
||||
if (player.tech && player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
}
|
||||
player.on('loadstart', vjs.bind(this, function(){
|
||||
if (player.tech.features && player.tech.features.volumeControl === false) {
|
||||
if (player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
} else {
|
||||
this.removeClass('vjs-hidden');
|
||||
@@ -5638,7 +5677,7 @@ vjs.PlaybackRateMenuButton.prototype.onClick = function(){
|
||||
|
||||
vjs.PlaybackRateMenuButton.prototype.playbackRateSupported = function(){
|
||||
return this.player().tech
|
||||
&& this.player().tech.features['playbackRate']
|
||||
&& this.player().tech['featuresPlaybackRate']
|
||||
&& this.player().options()['playbackRates']
|
||||
&& this.player().options()['playbackRates'].length > 0
|
||||
;
|
||||
@@ -5887,12 +5926,12 @@ vjs.MediaTechController = vjs.Component.extend({
|
||||
vjs.Component.call(this, player, options, ready);
|
||||
|
||||
// Manually track progress in cases where the browser/flash player doesn't report it.
|
||||
if (!this.features['progressEvents']) {
|
||||
if (!this['featuresProgressEvents']) {
|
||||
this.manualProgressOn();
|
||||
}
|
||||
|
||||
// Manually track timeudpates in cases where the browser/flash player doesn't report it.
|
||||
if (!this.features['timeupdateEvents']) {
|
||||
if (!this['featuresTimeupdateEvents']) {
|
||||
this.manualTimeUpdatesOn();
|
||||
}
|
||||
|
||||
@@ -6078,7 +6117,7 @@ vjs.MediaTechController.prototype.manualTimeUpdatesOn = function(){
|
||||
// Watch for native timeupdate event
|
||||
this.one('timeupdate', function(){
|
||||
// Update known progress support for this playback technology
|
||||
this.features['timeupdateEvents'] = true;
|
||||
this['featuresTimeupdateEvents'] = true;
|
||||
// Turn off manual progress tracking
|
||||
this.manualTimeUpdatesOff();
|
||||
});
|
||||
@@ -6129,18 +6168,16 @@ vjs.MediaTechController.prototype.setCurrentTime = function() {
|
||||
*/
|
||||
vjs.MediaTechController.prototype.setPoster = function(){};
|
||||
|
||||
vjs.MediaTechController.prototype.features = {
|
||||
'volumeControl': true,
|
||||
vjs.MediaTechController.prototype['featuresVolumeControl'] = true;
|
||||
|
||||
// Resizing plugins using request fullscreen reloads the plugin
|
||||
'fullscreenResize': false,
|
||||
'playbackRate': false,
|
||||
// Resizing plugins using request fullscreen reloads the plugin
|
||||
vjs.MediaTechController.prototype['featuresFullscreenResize'] = false;
|
||||
vjs.MediaTechController.prototype['featuresPlaybackRate'] = false;
|
||||
|
||||
// Optional events that we can manually mimic with timers
|
||||
// currently not triggered by video-js-swf
|
||||
'progressEvents': false,
|
||||
'timeupdateEvents': false
|
||||
};
|
||||
// Optional events that we can manually mimic with timers
|
||||
// currently not triggered by video-js-swf
|
||||
vjs.MediaTechController.prototype['featuresProgressEvents'] = false;
|
||||
vjs.MediaTechController.prototype['featuresTimeupdateEvents'] = false;
|
||||
|
||||
vjs.media = {};
|
||||
/**
|
||||
@@ -6158,19 +6195,19 @@ vjs.Html5 = vjs.MediaTechController.extend({
|
||||
/** @constructor */
|
||||
init: function(player, options, ready){
|
||||
// volume cannot be changed from 1 on iOS
|
||||
this.features['volumeControl'] = vjs.Html5.canControlVolume();
|
||||
this['featuresVolumeControl'] = vjs.Html5.canControlVolume();
|
||||
|
||||
// just in case; or is it excessively...
|
||||
this.features['playbackRate'] = vjs.Html5.canControlPlaybackRate();
|
||||
this['featuresPlaybackRate'] = vjs.Html5.canControlPlaybackRate();
|
||||
|
||||
// In iOS, if you move a video element in the DOM, it breaks video playback.
|
||||
this.features['movingMediaElementInDOM'] = !vjs.IS_IOS;
|
||||
this['movingMediaElementInDOM'] = !vjs.IS_IOS;
|
||||
|
||||
// HTML video is able to automatically resize when going to fullscreen
|
||||
this.features['fullscreenResize'] = true;
|
||||
this['featuresFullscreenResize'] = true;
|
||||
|
||||
// HTML video supports progress events
|
||||
this.features['progressEvents'] = true;
|
||||
this['featuresProgressEvents'] = true;
|
||||
|
||||
vjs.MediaTechController.call(this, player, options, ready);
|
||||
this.setupTriggers();
|
||||
@@ -6220,7 +6257,7 @@ vjs.Html5.prototype.createEl = function(){
|
||||
// Check if this browser supports moving the element into the box.
|
||||
// On the iPhone video will break if you move the element,
|
||||
// So we have to create a brand new element.
|
||||
if (!el || this.features['movingMediaElementInDOM'] === false) {
|
||||
if (!el || this['movingMediaElementInDOM'] === false) {
|
||||
|
||||
// If the original tag is still there, clone and remove it.
|
||||
if (el) {
|
||||
@@ -6370,7 +6407,13 @@ vjs.Html5.prototype.enterFullScreen = function(){
|
||||
vjs.Html5.prototype.exitFullScreen = function(){
|
||||
this.el_.webkitExitFullScreen();
|
||||
};
|
||||
vjs.Html5.prototype.src = function(src){ this.el_.src = src; };
|
||||
vjs.Html5.prototype.src = function(src) {
|
||||
if (src === undefined) {
|
||||
return this.el_.src;
|
||||
} else {
|
||||
this.el_.src = src;
|
||||
}
|
||||
};
|
||||
vjs.Html5.prototype.load = function(){ this.el_.load(); };
|
||||
vjs.Html5.prototype.currentSrc = function(){ return this.el_.currentSrc; };
|
||||
|
||||
|
||||
externo
+144
-141
@@ -1,155 +1,158 @@
|
||||
/*! Video.js v4.7.2 Copyright 2014 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE */
|
||||
(function() {var b=void 0,f=!0,k=null,l=!1;function m(){return function(){}}function p(a){return function(){return this[a]}}function r(a){return function(){return a}}var s;document.createElement("video");document.createElement("audio");document.createElement("track");function t(a,c,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice(1));if(t.Ca[a])return t.Ca[a];a=t.w(a)}if(!a||!a.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return a.player||new t.Player(a,c,d)}
|
||||
var videojs=window.videojs=t;t.Vb="4.7";t.Uc="https:"==document.location.protocol?"https://":"http://";t.options={techOrder:["html5","flash"],html5:{},flash:{},width:300,height:150,defaultVolume:0,playbackRates:[],children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{},errorDisplay:{}},language:document.getElementsByTagName("html")[0].getAttribute("lang")||navigator.Va&&navigator.Va[0]||navigator.ue||navigator.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."};
|
||||
"GENERATED_CDN_VSN"!==t.Vb&&(videojs.options.flash.swf=t.Uc+"vjs.zencdn.net/"+t.Vb+"/video-js.swf");t.Ca={};"function"===typeof define&&define.amd?define([],function(){return videojs}):"object"===typeof exports&&"object"===typeof module&&(module.exports=videojs);t.ra=t.CoreObject=m();
|
||||
t.ra.extend=function(a){var c,d;a=a||{};c=a.init||a.i||this.prototype.init||this.prototype.i||m();d=function(){c.apply(this,arguments)};d.prototype=t.h.create(this.prototype);d.prototype.constructor=d;d.extend=t.ra.extend;d.create=t.ra.create;for(var e in a)a.hasOwnProperty(e)&&(d.prototype[e]=a[e]);return d};t.ra.create=function(){var a=t.h.create(this.prototype);this.apply(a,arguments);return a};
|
||||
t.d=function(a,c,d){if(t.h.isArray(c))return u(t.d,a,c,d);var e=t.getData(a);e.D||(e.D={});e.D[c]||(e.D[c]=[]);d.z||(d.z=t.z++);e.D[c].push(d);e.Y||(e.disabled=l,e.Y=function(c){if(!e.disabled){c=t.qc(c);var d=e.D[c.type];if(d)for(var d=d.slice(0),j=0,n=d.length;j<n&&!c.xc();j++)d[j].call(a,c)}});1==e.D[c].length&&(a.addEventListener?a.addEventListener(c,e.Y,l):a.attachEvent&&a.attachEvent("on"+c,e.Y))};
|
||||
t.p=function(a,c,d){if(t.tc(a)){var e=t.getData(a);if(e.D){if(t.h.isArray(c))return u(t.p,a,c,d);if(c){var g=e.D[c];if(g){if(d){if(d.z)for(e=0;e<g.length;e++)g[e].z===d.z&&g.splice(e--,1)}else e.D[c]=[];t.kc(a,c)}}else for(g in e.D)c=g,e.D[c]=[],t.kc(a,c)}}};t.kc=function(a,c){var d=t.getData(a);0===d.D[c].length&&(delete d.D[c],a.removeEventListener?a.removeEventListener(c,d.Y,l):a.detachEvent&&a.detachEvent("on"+c,d.Y));t.Hb(d.D)&&(delete d.D,delete d.Y,delete d.disabled);t.Hb(d)&&t.Gc(a)};
|
||||
t.qc=function(a){function c(){return f}function d(){return l}if(!a||!a.Ib){var e=a||window.event;a={};for(var g in e)"layerX"!==g&&("layerY"!==g&&"keyboardEvent.keyLocation"!==g)&&("returnValue"==g&&e.preventDefault||(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.Ad=c;a.defaultPrevented=f};a.Ad=d;a.defaultPrevented=l;a.stopPropagation=function(){e.stopPropagation&&
|
||||
e.stopPropagation();a.cancelBubble=f;a.Ib=c};a.Ib=d;a.stopImmediatePropagation=function(){e.stopImmediatePropagation&&e.stopImmediatePropagation();a.xc=c;a.stopPropagation()};a.xc=d;if(a.clientX!=k){g=document.documentElement;var h=document.body;a.pageX=a.clientX+(g&&g.scrollLeft||h&&h.scrollLeft||0)-(g&&g.clientLeft||h&&h.clientLeft||0);a.pageY=a.clientY+(g&&g.scrollTop||h&&h.scrollTop||0)-(g&&g.clientTop||h&&h.clientTop||0)}a.which=a.charCode||a.keyCode;a.button!=k&&(a.button=a.button&1?0:a.button&
|
||||
4?1:a.button&2?2:0)}return a};t.m=function(a,c){var d=t.tc(a)?t.getData(a):{},e=a.parentNode||a.ownerDocument;"string"===typeof c&&(c={type:c,target:a});c=t.qc(c);d.Y&&d.Y.call(a,c);if(e&&!c.Ib()&&c.bubbles!==l)t.m(e,c);else if(!e&&!c.defaultPrevented&&(d=t.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.defaultPrevented};
|
||||
t.X=function(a,c,d){function e(){t.p(a,c,e);d.apply(this,arguments)}if(t.h.isArray(c))return u(t.X,a,c,d);e.z=d.z=d.z||t.z++;t.d(a,c,e)};function u(a,c,d,e){t.ic.forEach(d,function(d){a(c,d,e)})}var v=Object.prototype.hasOwnProperty;t.e=function(a,c){var d;c=c||{};d=document.createElement(a||"div");t.h.Z(c,function(a,c){-1!==a.indexOf("aria-")||"role"==a?d.setAttribute(a,c):d[a]=c});return d};t.ba=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};t.h={};
|
||||
t.h.create=Object.create||function(a){function c(){}c.prototype=a;return new c};t.h.Z=function(a,c,d){for(var e in a)v.call(a,e)&&c.call(d||this,e,a[e])};t.h.A=function(a,c){if(!c)return a;for(var d in c)v.call(c,d)&&(a[d]=c[d]);return a};t.h.od=function(a,c){var d,e,g;a=t.h.copy(a);for(d in c)v.call(c,d)&&(e=a[d],g=c[d],a[d]=t.h.Ta(e)&&t.h.Ta(g)?t.h.od(e,g):c[d]);return a};t.h.copy=function(a){return t.h.A({},a)};
|
||||
t.h.Ta=function(a){return!!a&&"object"===typeof a&&"[object Object]"===a.toString()&&a.constructor===Object};t.h.isArray=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};t.bind=function(a,c,d){function e(){return c.apply(a,arguments)}c.z||(c.z=t.z++);e.z=d?d+"_"+c.z:c.z;return e};t.va={};t.z=1;t.expando="vdata"+(new Date).getTime();t.getData=function(a){var c=a[t.expando];c||(c=a[t.expando]=t.z++,t.va[c]={});return t.va[c]};
|
||||
t.tc=function(a){a=a[t.expando];return!(!a||t.Hb(t.va[a]))};t.Gc=function(a){var c=a[t.expando];if(c){delete t.va[c];try{delete a[t.expando]}catch(d){a.removeAttribute?a.removeAttribute(t.expando):a[t.expando]=k}}};t.Hb=function(a){for(var c in a)if(a[c]!==k)return l;return f};t.n=function(a,c){-1==(" "+a.className+" ").indexOf(" "+c+" ")&&(a.className=""===a.className?c:a.className+" "+c)};
|
||||
t.q=function(a,c){var d,e;if(-1!=a.className.indexOf(c)){d=a.className.split(" ");for(e=d.length-1;0<=e;e--)d[e]===c&&d.splice(e,1);a.className=d.join(" ")}};t.B=t.e("video");t.M=navigator.userAgent;t.$c=/iPhone/i.test(t.M);t.Zc=/iPad/i.test(t.M);t.ad=/iPod/i.test(t.M);t.Yc=t.$c||t.Zc||t.ad;var aa=t,x;var y=t.M.match(/OS (\d+)_/i);x=y&&y[1]?y[1]:b;aa.le=x;t.Wc=/Android/i.test(t.M);var ba=t,z;var A=t.M.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),B,C;
|
||||
A?(B=A[1]&&parseFloat(A[1]),C=A[2]&&parseFloat(A[2]),z=B&&C?parseFloat(A[1]+"."+A[2]):B?B:k):z=k;ba.Ub=z;t.bd=t.Wc&&/webkit/i.test(t.M)&&2.3>t.Ub;t.Xc=/Firefox/i.test(t.M);t.me=/Chrome/i.test(t.M);t.ec=!!("ontouchstart"in window||window.Vc&&document instanceof window.Vc);t.Ic=function(a,c){t.h.Z(c,function(c,e){e===k||"undefined"===typeof e||e===l?a.removeAttribute(c):a.setAttribute(c,e===f?"":e)})};
|
||||
t.Aa=function(a){var c,d,e,g;c={};if(a&&a.attributes&&0<a.attributes.length){d=a.attributes;for(var h=d.length-1;0<=h;h--){e=d[h].name;g=d[h].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==k?f:l;c[e]=g}}return c};
|
||||
t.oe=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};t.Gb=function(a,c){c.firstChild?c.insertBefore(a,c.firstChild):c.appendChild(a)};t.Pa={};t.w=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};
|
||||
t.za=function(a,c){c=c||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),h=Math.floor(c/60%60),j=Math.floor(c/3600);if(isNaN(a)||Infinity===a)g=e=d="-";g=0<g||0<j?g+":":"";return g+(((g||10<=h)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};t.hd=function(){document.body.focus();document.onselectstart=r(l)};t.he=function(){document.onselectstart=r(f)};t.trim=function(a){return(a+"").replace(/^\s+|\s+$/g,"")};t.round=function(a,c){c||(c=0);return Math.round(a*Math.pow(10,c))/Math.pow(10,c)};
|
||||
/*! Video.js v4.8.0 Copyright 2014 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE */
|
||||
(function() {var b=void 0,f=!0,k=null,l=!1;function m(){return function(){}}function p(a){return function(){return this[a]}}function r(a){return function(){return a}}var s;document.createElement("video");document.createElement("audio");document.createElement("track");function t(a,c,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice(1));if(t.Ba[a])return t.Ba[a];a=t.v(a)}if(!a||!a.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return a.player||new t.Player(a,c,d)}
|
||||
var videojs=window.videojs=t;t.Ub="4.8";t.Sc="https:"==document.location.protocol?"https://":"http://";
|
||||
t.options={techOrder:["html5","flash"],html5:{},flash:{},width:300,height:150,defaultVolume:0,playbackRates:[],inactivityTimeout:2E3,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{},errorDisplay:{}},language:document.getElementsByTagName("html")[0].getAttribute("lang")||navigator.Ua&&navigator.Ua[0]||navigator.we||navigator.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."};
|
||||
"GENERATED_CDN_VSN"!==t.Ub&&(videojs.options.flash.swf=t.Sc+"vjs.zencdn.net/"+t.Ub+"/video-js.swf");t.dd=function(a,c){t.options.languages[a]=t.options.languages[a]!==b?t.ga.Va(t.options.languages[a],c):c;return t.options.languages};t.Ba={};"function"===typeof define&&define.amd?define([],function(){return videojs}):"object"===typeof exports&&"object"===typeof module&&(module.exports=videojs);t.qa=t.CoreObject=m();
|
||||
t.qa.extend=function(a){var c,d;a=a||{};c=a.init||a.i||this.prototype.init||this.prototype.i||m();d=function(){c.apply(this,arguments)};d.prototype=t.h.create(this.prototype);d.prototype.constructor=d;d.extend=t.qa.extend;d.create=t.qa.create;for(var e in a)a.hasOwnProperty(e)&&(d.prototype[e]=a[e]);return d};t.qa.create=function(){var a=t.h.create(this.prototype);this.apply(a,arguments);return a};
|
||||
t.d=function(a,c,d){if(t.h.isArray(c))return u(t.d,a,c,d);var e=t.getData(a);e.C||(e.C={});e.C[c]||(e.C[c]=[]);d.w||(d.w=t.w++);e.C[c].push(d);e.X||(e.disabled=l,e.X=function(c){if(!e.disabled){c=t.pc(c);var d=e.C[c.type];if(d)for(var d=d.slice(0),j=0,n=d.length;j<n&&!c.wc();j++)d[j].call(a,c)}});1==e.C[c].length&&(a.addEventListener?a.addEventListener(c,e.X,l):a.attachEvent&&a.attachEvent("on"+c,e.X))};
|
||||
t.o=function(a,c,d){if(t.sc(a)){var e=t.getData(a);if(e.C){if(t.h.isArray(c))return u(t.o,a,c,d);if(c){var g=e.C[c];if(g){if(d){if(d.w)for(e=0;e<g.length;e++)g[e].w===d.w&&g.splice(e--,1)}else e.C[c]=[];t.jc(a,c)}}else for(g in e.C)c=g,e.C[c]=[],t.jc(a,c)}}};t.jc=function(a,c){var d=t.getData(a);0===d.C[c].length&&(delete d.C[c],a.removeEventListener?a.removeEventListener(c,d.X,l):a.detachEvent&&a.detachEvent("on"+c,d.X));t.Hb(d.C)&&(delete d.C,delete d.X,delete d.disabled);t.Hb(d)&&t.Fc(a)};
|
||||
t.pc=function(a){function c(){return f}function d(){return l}if(!a||!a.Ib){var e=a||window.event;a={};for(var g in e)"layerX"!==g&&("layerY"!==g&&"keyboardEvent.keyLocation"!==g)&&("returnValue"==g&&e.preventDefault||(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.zd=c;a.defaultPrevented=f};a.zd=d;a.defaultPrevented=l;a.stopPropagation=function(){e.stopPropagation&&
|
||||
e.stopPropagation();a.cancelBubble=f;a.Ib=c};a.Ib=d;a.stopImmediatePropagation=function(){e.stopImmediatePropagation&&e.stopImmediatePropagation();a.wc=c;a.stopPropagation()};a.wc=d;if(a.clientX!=k){g=document.documentElement;var h=document.body;a.pageX=a.clientX+(g&&g.scrollLeft||h&&h.scrollLeft||0)-(g&&g.clientLeft||h&&h.clientLeft||0);a.pageY=a.clientY+(g&&g.scrollTop||h&&h.scrollTop||0)-(g&&g.clientTop||h&&h.clientTop||0)}a.which=a.charCode||a.keyCode;a.button!=k&&(a.button=a.button&1?0:a.button&
|
||||
4?1:a.button&2?2:0)}return a};t.l=function(a,c){var d=t.sc(a)?t.getData(a):{},e=a.parentNode||a.ownerDocument;"string"===typeof c&&(c={type:c,target:a});c=t.pc(c);d.X&&d.X.call(a,c);if(e&&!c.Ib()&&c.bubbles!==l)t.l(e,c);else if(!e&&!c.defaultPrevented&&(d=t.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.defaultPrevented};
|
||||
t.W=function(a,c,d){function e(){t.o(a,c,e);d.apply(this,arguments)}if(t.h.isArray(c))return u(t.W,a,c,d);e.w=d.w=d.w||t.w++;t.d(a,c,e)};function u(a,c,d,e){t.hc.forEach(d,function(d){a(c,d,e)})}var v=Object.prototype.hasOwnProperty;t.e=function(a,c){var d;c=c||{};d=document.createElement(a||"div");t.h.Y(c,function(a,c){-1!==a.indexOf("aria-")||"role"==a?d.setAttribute(a,c):d[a]=c});return d};t.aa=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};t.h={};
|
||||
t.h.create=Object.create||function(a){function c(){}c.prototype=a;return new c};t.h.Y=function(a,c,d){for(var e in a)v.call(a,e)&&c.call(d||this,e,a[e])};t.h.z=function(a,c){if(!c)return a;for(var d in c)v.call(c,d)&&(a[d]=c[d]);return a};t.h.nd=function(a,c){var d,e,g;a=t.h.copy(a);for(d in c)v.call(c,d)&&(e=a[d],g=c[d],a[d]=t.h.Sa(e)&&t.h.Sa(g)?t.h.nd(e,g):c[d]);return a};t.h.copy=function(a){return t.h.z({},a)};
|
||||
t.h.Sa=function(a){return!!a&&"object"===typeof a&&"[object Object]"===a.toString()&&a.constructor===Object};t.h.isArray=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};t.Bd=function(a){return a!==a};t.bind=function(a,c,d){function e(){return c.apply(a,arguments)}c.w||(c.w=t.w++);e.w=d?d+"_"+c.w:c.w;return e};t.ua={};t.w=1;t.expando="vdata"+(new Date).getTime();t.getData=function(a){var c=a[t.expando];c||(c=a[t.expando]=t.w++,t.ua[c]={});return t.ua[c]};
|
||||
t.sc=function(a){a=a[t.expando];return!(!a||t.Hb(t.ua[a]))};t.Fc=function(a){var c=a[t.expando];if(c){delete t.ua[c];try{delete a[t.expando]}catch(d){a.removeAttribute?a.removeAttribute(t.expando):a[t.expando]=k}}};t.Hb=function(a){for(var c in a)if(a[c]!==k)return l;return f};t.n=function(a,c){-1==(" "+a.className+" ").indexOf(" "+c+" ")&&(a.className=""===a.className?c:a.className+" "+c)};
|
||||
t.p=function(a,c){var d,e;if(-1!=a.className.indexOf(c)){d=a.className.split(" ");for(e=d.length-1;0<=e;e--)d[e]===c&&d.splice(e,1);a.className=d.join(" ")}};t.A=t.e("video");t.L=navigator.userAgent;t.Yc=/iPhone/i.test(t.L);t.Xc=/iPad/i.test(t.L);t.Zc=/iPod/i.test(t.L);t.Wc=t.Yc||t.Xc||t.Zc;var aa=t,x;var y=t.L.match(/OS (\d+)_/i);x=y&&y[1]?y[1]:b;aa.le=x;t.Uc=/Android/i.test(t.L);var ba=t,z;var A=t.L.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),B,C;
|
||||
A?(B=A[1]&&parseFloat(A[1]),C=A[2]&&parseFloat(A[2]),z=B&&C?parseFloat(A[1]+"."+A[2]):B?B:k):z=k;ba.Tb=z;t.$c=t.Uc&&/webkit/i.test(t.L)&&2.3>t.Tb;t.Vc=/Firefox/i.test(t.L);t.me=/Chrome/i.test(t.L);t.dc=!!("ontouchstart"in window||window.Tc&&document instanceof window.Tc);t.Hc=function(a,c){t.h.Y(c,function(c,e){e===k||"undefined"===typeof e||e===l?a.removeAttribute(c):a.setAttribute(c,e===f?"":e)})};
|
||||
t.za=function(a){var c,d,e,g;c={};if(a&&a.attributes&&0<a.attributes.length){d=a.attributes;for(var h=d.length-1;0<=h;h--){e=d[h].name;g=d[h].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==k?f:l;c[e]=g}}return c};
|
||||
t.se=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};t.Gb=function(a,c){c.firstChild?c.insertBefore(a,c.firstChild):c.appendChild(a)};t.Oa={};t.v=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};
|
||||
t.ya=function(a,c){c=c||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),h=Math.floor(c/60%60),j=Math.floor(c/3600);if(isNaN(a)||Infinity===a)g=e=d="-";g=0<g||0<j?g+":":"";return g+(((g||10<=h)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};t.gd=function(){document.body.focus();document.onselectstart=r(l)};t.he=function(){document.onselectstart=r(f)};t.trim=function(a){return(a+"").replace(/^\s+|\s+$/g,"")};t.round=function(a,c){c||(c=0);return Math.round(a*Math.pow(10,c))/Math.pow(10,c)};
|
||||
t.zb=function(a,c){return{length:1,start:function(){return a},end:function(){return c}}};
|
||||
t.get=function(a,c,d,e){var g,h,j,n;d=d||m();"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.");});h=new XMLHttpRequest;j=t.Ud(a);n=window.location;j.protocol+j.host!==n.protocol+n.host&&window.XDomainRequest&&!("withCredentials"in
|
||||
h)?(h=new window.XDomainRequest,h.onload=function(){c(h.responseText)},h.onerror=d,h.onprogress=m(),h.ontimeout=d):(g="file:"==j.protocol||"file:"==n.protocol,h.onreadystatechange=function(){4===h.readyState&&(200===h.status||g&&0===h.status?c(h.responseText):d(h.responseText))});try{h.open("GET",a,f),e&&(h.withCredentials=f)}catch(q){d(q);return}try{h.send()}catch(w){d(w)}};
|
||||
t.Yd=function(a){try{var c=window.localStorage||l;c&&(c.volume=a)}catch(d){22==d.code||1014==d.code?t.log("LocalStorage Full (VideoJS)",d):18==d.code?t.log("LocalStorage not allowed (VideoJS)",d):t.log("LocalStorage Error (VideoJS)",d)}};t.sc=function(a){a.match(/^https?:\/\//)||(a=t.e("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
|
||||
t.Yd=function(a){try{var c=window.localStorage||l;c&&(c.volume=a)}catch(d){22==d.code||1014==d.code?t.log("LocalStorage Full (VideoJS)",d):18==d.code?t.log("LocalStorage not allowed (VideoJS)",d):t.log("LocalStorage Error (VideoJS)",d)}};t.rc=function(a){a.match(/^https?:\/\//)||(a=t.e("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
|
||||
t.Ud=function(a){var c,d,e,g;g="protocol hostname port pathname search hash host".split(" ");d=t.e("a",{href:a});if(e=""===d.host&&"file:"!==d.protocol)c=t.e("div"),c.innerHTML='<a href="'+a+'"></a>',d=c.firstChild,c.setAttribute("style","display:none; position:absolute;"),document.body.appendChild(c);a={};for(var h=0;h<g.length;h++)a[g[h]]=d[g[h]];e&&document.body.removeChild(c);return a};
|
||||
function D(a,c){var d,e;d=Array.prototype.slice.call(c);e=m();e=window.console||{log:e,warn:e,error:e};a?d.unshift(a.toUpperCase()+":"):a="log";t.log.history.push(d);d.unshift("VIDEOJS:");if(e[a].apply)e[a].apply(e,d);else e[a](d.join(" "))}t.log=function(){D(k,arguments)};t.log.history=[];t.log.error=function(){D("error",arguments)};t.log.warn=function(){D("warn",arguments)};
|
||||
t.wd=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:t.round(c.left+(window.pageXOffset||d.scrollLeft)-(a.clientLeft||d.clientLeft||0)),top:t.round(c.top+(window.pageYOffset||d.scrollTop)-(a.clientTop||d.clientTop||0))}};t.ic={};t.ic.forEach=function(a,c,d){if(t.h.isArray(a)&&c instanceof Function)for(var e=0,g=a.length;e<g;++e)c.call(d||t,a[e],e,a);return a};t.qa={};
|
||||
t.qa.Lb=function(a,c){var d,e,g;a=t.h.copy(a);for(d in c)c.hasOwnProperty(d)&&(e=a[d],g=c[d],a[d]=t.h.Ta(e)&&t.h.Ta(g)?t.qa.Lb(e,g):c[d]);return a};
|
||||
t.a=t.ra.extend({i:function(a,c,d){this.c=a;this.l=t.h.copy(this.l);c=this.options(c);this.U=c.id||(c.el&&c.el.id?c.el.id:a.id()+"_component_"+t.z++);this.Hd=c.name||k;this.b=c.el||this.e();this.N=[];this.Qa={};this.Ra={};this.vc();this.J(d);if(c.Hc!==l){var e,g;e=t.bind(this.j(),this.j().reportUserActivity);this.d("touchstart",function(){e();clearInterval(g);g=setInterval(e,250)});a=function(){e();clearInterval(g)};this.d("touchmove",e);this.d("touchend",a);this.d("touchcancel",a)}}});s=t.a.prototype;
|
||||
s.dispose=function(){this.m({type:"dispose",bubbles:l});if(this.N)for(var a=this.N.length-1;0<=a;a--)this.N[a].dispose&&this.N[a].dispose();this.Ra=this.Qa=this.N=k;this.p();this.b.parentNode&&this.b.parentNode.removeChild(this.b);t.Gc(this.b);this.b=k};s.c=f;s.j=p("c");s.options=function(a){return a===b?this.l:this.l=t.qa.Lb(this.l,a)};s.e=function(a,c){return t.e(a,c)};s.s=function(a){var c=this.c.language(),d=this.c.Va();return d&&d[c]&&d[c][a]?d[c][a]:a};s.w=p("b");
|
||||
s.ja=function(){return this.v||this.b};s.id=p("U");s.name=p("Hd");s.children=p("N");s.yd=function(a){return this.Qa[a]};s.ka=function(a){return this.Ra[a]};s.R=function(a,c){var d,e;"string"===typeof a?(e=a,c=c||{},d=c.componentClass||t.ba(e),c.name=e,d=new window.videojs[d](this.c||this,c)):d=a;this.N.push(d);"function"===typeof d.id&&(this.Qa[d.id()]=d);(e=e||d.name&&d.name())&&(this.Ra[e]=d);"function"===typeof d.el&&d.el()&&this.ja().appendChild(d.el());return d};
|
||||
s.removeChild=function(a){"string"===typeof a&&(a=this.ka(a));if(a&&this.N){for(var c=l,d=this.N.length-1;0<=d;d--)if(this.N[d]===a){c=f;this.N.splice(d,1);break}c&&(this.Qa[a.id]=k,this.Ra[a.name]=k,(c=a.w())&&c.parentNode===this.ja()&&this.ja().removeChild(a.w()))}};s.vc=function(){var a,c,d,e;a=this;if(c=this.options().children)if(t.h.isArray(c))for(var g=0;g<c.length;g++)d=c[g],"string"==typeof d?(e=d,d={}):e=d.name,a[e]=a.R(e,d);else t.h.Z(c,function(c,d){d!==l&&(a[c]=a.R(c,d))})};s.T=r("");
|
||||
s.d=function(a,c){t.d(this.b,a,t.bind(this,c));return this};s.p=function(a,c){t.p(this.b,a,c);return this};s.X=function(a,c){t.X(this.b,a,t.bind(this,c));return this};s.m=function(a){t.m(this.b,a);return this};s.J=function(a){a&&(this.la?a.call(this):(this.ab===b&&(this.ab=[]),this.ab.push(a)));return this};s.Ga=function(){this.la=f;var a=this.ab;if(a&&0<a.length){for(var c=0,d=a.length;c<d;c++)a[c].call(this);this.ab=[];this.m("ready")}};s.n=function(a){t.n(this.b,a);return this};
|
||||
s.q=function(a){t.q(this.b,a);return this};s.show=function(){this.b.style.display="block";return this};s.W=function(){this.b.style.display="none";return this};function E(a){a.q("vjs-lock-showing")}s.disable=function(){this.W();this.show=m()};s.width=function(a,c){return F(this,"width",a,c)};s.height=function(a,c){return F(this,"height",a,c)};s.rd=function(a,c){return this.width(a,f).height(c)};
|
||||
function F(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.m("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"+t.ba(c)],10)}
|
||||
function G(a){var c,d,e,g,h,j,n,q;c=0;d=k;a.d("touchstart",function(a){1===a.touches.length&&(d=a.touches[0],c=(new Date).getTime(),g=f)});a.d("touchmove",function(a){1<a.touches.length?g=l:d&&(j=a.touches[0].pageX-d.pageX,n=a.touches[0].pageY-d.pageY,q=Math.sqrt(j*j+n*n),22<q&&(g=l))});h=function(){g=l};a.d("touchleave",h);a.d("touchcancel",h);a.d("touchend",function(a){d=k;g===f&&(e=(new Date).getTime()-c,250>e&&(a.preventDefault(),this.m("tap")))})}
|
||||
t.vd=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:t.round(c.left+(window.pageXOffset||d.scrollLeft)-(a.clientLeft||d.clientLeft||0)),top:t.round(c.top+(window.pageYOffset||d.scrollTop)-(a.clientTop||d.clientTop||0))}};t.hc={};t.hc.forEach=function(a,c,d){if(t.h.isArray(a)&&c instanceof Function)for(var e=0,g=a.length;e<g;++e)c.call(d||t,a[e],e,a);return a};t.ga={};
|
||||
t.ga.Va=function(a,c){var d,e,g;a=t.h.copy(a);for(d in c)c.hasOwnProperty(d)&&(e=a[d],g=c[d],a[d]=t.h.Sa(e)&&t.h.Sa(g)?t.ga.Va(e,g):c[d]);return a};
|
||||
t.a=t.qa.extend({i:function(a,c,d){this.c=a;this.k=t.h.copy(this.k);c=this.options(c);this.T=c.id||(c.el&&c.el.id?c.el.id:a.id()+"_component_"+t.w++);this.Hd=c.name||k;this.b=c.el||this.e();this.M=[];this.Pa={};this.Qa={};this.uc();this.I(d);if(c.Gc!==l){var e,g;e=t.bind(this.j(),this.j().reportUserActivity);this.d("touchstart",function(){e();clearInterval(g);g=setInterval(e,250)});a=function(){e();clearInterval(g)};this.d("touchmove",e);this.d("touchend",a);this.d("touchcancel",a)}}});s=t.a.prototype;
|
||||
s.dispose=function(){this.l({type:"dispose",bubbles:l});if(this.M)for(var a=this.M.length-1;0<=a;a--)this.M[a].dispose&&this.M[a].dispose();this.Qa=this.Pa=this.M=k;this.o();this.b.parentNode&&this.b.parentNode.removeChild(this.b);t.Fc(this.b);this.b=k};s.c=f;s.j=p("c");s.options=function(a){return a===b?this.k:this.k=t.ga.Va(this.k,a)};s.e=function(a,c){return t.e(a,c)};s.s=function(a){var c=this.c.language(),d=this.c.Ua();return d&&d[c]&&d[c][a]?d[c][a]:a};s.v=p("b");
|
||||
s.ja=function(){return this.u||this.b};s.id=p("T");s.name=p("Hd");s.children=p("M");s.xd=function(a){return this.Pa[a]};s.ka=function(a){return this.Qa[a]};s.Q=function(a,c){var d,e;"string"===typeof a?(e=a,c=c||{},d=c.componentClass||t.aa(e),c.name=e,d=new window.videojs[d](this.c||this,c)):d=a;this.M.push(d);"function"===typeof d.id&&(this.Pa[d.id()]=d);(e=e||d.name&&d.name())&&(this.Qa[e]=d);"function"===typeof d.el&&d.el()&&this.ja().appendChild(d.el());return d};
|
||||
s.removeChild=function(a){"string"===typeof a&&(a=this.ka(a));if(a&&this.M){for(var c=l,d=this.M.length-1;0<=d;d--)if(this.M[d]===a){c=f;this.M.splice(d,1);break}c&&(this.Pa[a.id]=k,this.Qa[a.name]=k,(c=a.v())&&c.parentNode===this.ja()&&this.ja().removeChild(a.v()))}};s.uc=function(){var a,c,d,e;a=this;if(c=this.options().children)if(t.h.isArray(c))for(var g=0;g<c.length;g++)d=c[g],"string"==typeof d?(e=d,d={}):e=d.name,a[e]=a.Q(e,d);else t.h.Y(c,function(c,d){d!==l&&(a[c]=a.Q(c,d))})};s.S=r("");
|
||||
s.d=function(a,c){t.d(this.b,a,t.bind(this,c));return this};s.o=function(a,c){t.o(this.b,a,c);return this};s.W=function(a,c){t.W(this.b,a,t.bind(this,c));return this};s.l=function(a){t.l(this.b,a);return this};s.I=function(a){a&&(this.la?a.call(this):(this.ab===b&&(this.ab=[]),this.ab.push(a)));return this};s.Fa=function(){this.la=f;var a=this.ab;if(a&&0<a.length){for(var c=0,d=a.length;c<d;c++)a[c].call(this);this.ab=[];this.l("ready")}};s.n=function(a){t.n(this.b,a);return this};
|
||||
s.p=function(a){t.p(this.b,a);return this};s.show=function(){this.b.style.display="block";return this};s.V=function(){this.b.style.display="none";return this};function E(a){a.p("vjs-lock-showing")}s.disable=function(){this.V();this.show=m()};s.width=function(a,c){return F(this,"width",a,c)};s.height=function(a,c){return F(this,"height",a,c)};s.qd=function(a,c){return this.width(a,f).height(c)};
|
||||
function F(a,c,d,e){if(d!==b){if(d===k||t.Bd(d))d=0;a.b.style[c]=-1!==(""+d).indexOf("%")||-1!==(""+d).indexOf("px")?d:"auto"===d?"":d+"px";e||a.l("resize");return 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"+t.aa(c)],10)}
|
||||
function G(a){var c,d,e,g,h,j,n,q;c=0;d=k;a.d("touchstart",function(a){1===a.touches.length&&(d=a.touches[0],c=(new Date).getTime(),g=f)});a.d("touchmove",function(a){1<a.touches.length?g=l:d&&(j=a.touches[0].pageX-d.pageX,n=a.touches[0].pageY-d.pageY,q=Math.sqrt(j*j+n*n),22<q&&(g=l))});h=function(){g=l};a.d("touchleave",h);a.d("touchcancel",h);a.d("touchend",function(a){d=k;g===f&&(e=(new Date).getTime()-c,250>e&&(a.preventDefault(),this.l("tap")))})}
|
||||
t.t=t.a.extend({i:function(a,c){t.a.call(this,a,c);G(this);this.d("tap",this.r);this.d("click",this.r);this.d("focus",this.Ya);this.d("blur",this.Xa)}});s=t.t.prototype;
|
||||
s.e=function(a,c){var d;c=t.h.A({className:this.T(),role:"button","aria-live":"polite",tabIndex:0},c);d=t.a.prototype.e.call(this,a,c);c.innerHTML||(this.v=t.e("div",{className:"vjs-control-content"}),this.xb=t.e("span",{className:"vjs-control-text",innerHTML:this.s(this.ua)||"Need Text"}),this.v.appendChild(this.xb),d.appendChild(this.v));return d};s.T=function(){return"vjs-control "+t.a.prototype.T.call(this)};s.r=m();s.Ya=function(){t.d(document,"keyup",t.bind(this,this.ea))};
|
||||
s.ea=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.r()};s.Xa=function(){t.p(document,"keyup",t.bind(this,this.ea))};
|
||||
t.Q=t.a.extend({i:function(a,c){t.a.call(this,a,c);this.gd=this.ka(this.l.barName);this.handle=this.ka(this.l.handleName);this.d("mousedown",this.Za);this.d("touchstart",this.Za);this.d("focus",this.Ya);this.d("blur",this.Xa);this.d("click",this.r);this.c.d("controlsvisible",t.bind(this,this.update));a.d(this.Cc,t.bind(this,this.update));this.S={};this.S.move=t.bind(this,this.$a);this.S.end=t.bind(this,this.Mb)}});s=t.Q.prototype;
|
||||
s.e=function(a,c){c=c||{};c.className+=" vjs-slider";c=t.h.A({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c);return t.a.prototype.e.call(this,a,c)};s.Za=function(a){a.preventDefault();t.hd();this.n("vjs-sliding");t.d(document,"mousemove",this.S.move);t.d(document,"mouseup",this.S.end);t.d(document,"touchmove",this.S.move);t.d(document,"touchend",this.S.end);this.$a(a)};s.$a=m();
|
||||
s.Mb=function(){t.he();this.q("vjs-sliding");t.p(document,"mousemove",this.S.move,l);t.p(document,"mouseup",this.S.end,l);t.p(document,"touchmove",this.S.move,l);t.p(document,"touchend",this.S.end,l);this.update()};s.update=function(){if(this.b){var a,c=this.Fb(),d=this.handle,e=this.gd;isNaN(c)&&(c=0);a=c;if(d){a=this.b.offsetWidth;var g=d.w().offsetWidth;a=g?g/a:0;c*=1-a;a=c+a/2;d.w().style.left=t.round(100*c,2)+"%"}e&&(e.w().style.width=t.round(100*a,2)+"%")}};
|
||||
function H(a,c){var d,e,g,h;d=a.b;e=t.wd(d);h=g=d.offsetWidth;d=a.handle;if(a.options().vertical)return h=e.top,e=c.changedTouches?c.changedTouches[0].pageY:c.pageY,d&&(d=d.w().offsetHeight,h+=d/2,g-=d),Math.max(0,Math.min(1,(h-e+g)/g));g=e.left;e=c.changedTouches?c.changedTouches[0].pageX:c.pageX;d&&(d=d.w().offsetWidth,g+=d/2,h-=d);return Math.max(0,Math.min(1,(e-g)/h))}s.Ya=function(){t.d(document,"keyup",t.bind(this,this.ea))};
|
||||
s.ea=function(a){if(37==a.which||40==a.which)a.preventDefault(),this.Lc();else if(38==a.which||39==a.which)a.preventDefault(),this.Mc()};s.Xa=function(){t.p(document,"keyup",t.bind(this,this.ea))};s.r=function(a){a.stopImmediatePropagation();a.preventDefault()};t.$=t.a.extend();t.$.prototype.defaultValue=0;
|
||||
t.$.prototype.e=function(a,c){c=c||{};c.className+=" vjs-slider-handle";c=t.h.A({innerHTML:'<span class="vjs-control-text">'+this.defaultValue+"</span>"},c);return t.a.prototype.e.call(this,"div",c)};t.ha=t.a.extend();function ca(a,c){a.R(c);c.d("click",t.bind(a,function(){E(this)}))}
|
||||
t.ha.prototype.e=function(){var a=this.options().lc||"ul";this.v=t.e(a,{className:"vjs-menu-content"});a=t.a.prototype.e.call(this,"div",{append:this.v,className:"vjs-menu"});a.appendChild(this.v);t.d(a,"click",function(a){a.preventDefault();a.stopImmediatePropagation()});return a};t.I=t.t.extend({i:function(a,c){t.t.call(this,a,c);this.selected(c.selected)}});t.I.prototype.e=function(a,c){return t.t.prototype.e.call(this,"li",t.h.A({className:"vjs-menu-item",innerHTML:this.l.label},c))};
|
||||
t.I.prototype.r=function(){this.selected(f)};t.I.prototype.selected=function(a){a?(this.n("vjs-selected"),this.b.setAttribute("aria-selected",f)):(this.q("vjs-selected"),this.b.setAttribute("aria-selected",l))};t.L=t.t.extend({i:function(a,c){t.t.call(this,a,c);this.Ba=this.xa();this.R(this.Ba);this.O&&0===this.O.length&&this.W();this.d("keyup",this.ea);this.b.setAttribute("aria-haspopup",f);this.b.setAttribute("role","button")}});s=t.L.prototype;s.ta=l;
|
||||
s.xa=function(){var a=new t.ha(this.c);this.options().title&&a.ja().appendChild(t.e("li",{className:"vjs-menu-title",innerHTML:t.ba(this.options().title),ee:-1}));if(this.O=this.createItems())for(var c=0;c<this.O.length;c++)ca(a,this.O[c]);return a};s.wa=m();s.T=function(){return this.className+" vjs-menu-button "+t.t.prototype.T.call(this)};s.Ya=m();s.Xa=m();s.r=function(){this.X("mouseout",t.bind(this,function(){E(this.Ba);this.b.blur()}));this.ta?I(this):J(this)};
|
||||
s.ea=function(a){a.preventDefault();32==a.which||13==a.which?this.ta?I(this):J(this):27==a.which&&this.ta&&I(this)};function J(a){a.ta=f;a.Ba.n("vjs-lock-showing");a.b.setAttribute("aria-pressed",f);a.O&&0<a.O.length&&a.O[0].w().focus()}function I(a){a.ta=l;E(a.Ba);a.b.setAttribute("aria-pressed",l)}t.F=function(a){"number"===typeof a?this.code=a:"string"===typeof a?this.message=a:"object"===typeof a&&t.h.A(this,a);this.message||(this.message=t.F.pd[this.code]||"")};t.F.prototype.code=0;
|
||||
t.F.prototype.message="";t.F.prototype.status=k;t.F.Sa="MEDIA_ERR_CUSTOM MEDIA_ERR_ABORTED MEDIA_ERR_NETWORK MEDIA_ERR_DECODE MEDIA_ERR_SRC_NOT_SUPPORTED MEDIA_ERR_ENCRYPTED".split(" ");
|
||||
t.F.pd={1:"You aborted the video playback",2:"A network error caused the video download to fail part-way.",3:"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.",4:"The video could not be loaded, either because the server or network failed or because the format is not supported.",5:"The video is encrypted and we do not have the keys to decrypt it."};for(var K=0;K<t.F.Sa.length;K++)t.F[t.F.Sa[K]]=K,t.F.prototype[t.F.Sa[K]]=K;
|
||||
s.e=function(a,c){var d;c=t.h.z({className:this.S(),role:"button","aria-live":"polite",tabIndex:0},c);d=t.a.prototype.e.call(this,a,c);c.innerHTML||(this.u=t.e("div",{className:"vjs-control-content"}),this.xb=t.e("span",{className:"vjs-control-text",innerHTML:this.s(this.ta)||"Need Text"}),this.u.appendChild(this.xb),d.appendChild(this.u));return d};s.S=function(){return"vjs-control "+t.a.prototype.S.call(this)};s.r=m();s.Ya=function(){t.d(document,"keydown",t.bind(this,this.da))};
|
||||
s.da=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.r()};s.Xa=function(){t.o(document,"keydown",t.bind(this,this.da))};
|
||||
t.P=t.a.extend({i:function(a,c){t.a.call(this,a,c);this.fd=this.ka(this.k.barName);this.handle=this.ka(this.k.handleName);this.d("mousedown",this.Za);this.d("touchstart",this.Za);this.d("focus",this.Ya);this.d("blur",this.Xa);this.d("click",this.r);this.c.d("controlsvisible",t.bind(this,this.update));a.d(this.Bc,t.bind(this,this.update));this.R={};this.R.move=t.bind(this,this.$a);this.R.end=t.bind(this,this.Lb)}});s=t.P.prototype;
|
||||
s.e=function(a,c){c=c||{};c.className+=" vjs-slider";c=t.h.z({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c);return t.a.prototype.e.call(this,a,c)};s.Za=function(a){a.preventDefault();t.gd();this.n("vjs-sliding");t.d(document,"mousemove",this.R.move);t.d(document,"mouseup",this.R.end);t.d(document,"touchmove",this.R.move);t.d(document,"touchend",this.R.end);this.$a(a)};s.$a=m();
|
||||
s.Lb=function(){t.he();this.p("vjs-sliding");t.o(document,"mousemove",this.R.move,l);t.o(document,"mouseup",this.R.end,l);t.o(document,"touchmove",this.R.move,l);t.o(document,"touchend",this.R.end,l);this.update()};s.update=function(){if(this.b){var a,c=this.Fb(),d=this.handle,e=this.fd;isNaN(c)&&(c=0);a=c;if(d){a=this.b.offsetWidth;var g=d.v().offsetWidth;a=g?g/a:0;c*=1-a;a=c+a/2;d.v().style.left=t.round(100*c,2)+"%"}e&&(e.v().style.width=t.round(100*a,2)+"%")}};
|
||||
function H(a,c){var d,e,g,h;d=a.b;e=t.vd(d);h=g=d.offsetWidth;d=a.handle;if(a.options().vertical)return h=e.top,e=c.changedTouches?c.changedTouches[0].pageY:c.pageY,d&&(d=d.v().offsetHeight,h+=d/2,g-=d),Math.max(0,Math.min(1,(h-e+g)/g));g=e.left;e=c.changedTouches?c.changedTouches[0].pageX:c.pageX;d&&(d=d.v().offsetWidth,g+=d/2,h-=d);return Math.max(0,Math.min(1,(e-g)/h))}s.Ya=function(){t.d(document,"keyup",t.bind(this,this.da))};
|
||||
s.da=function(a){if(37==a.which||40==a.which)a.preventDefault(),this.Kc();else if(38==a.which||39==a.which)a.preventDefault(),this.Lc()};s.Xa=function(){t.o(document,"keyup",t.bind(this,this.da))};s.r=function(a){a.stopImmediatePropagation();a.preventDefault()};t.Z=t.a.extend();t.Z.prototype.defaultValue=0;
|
||||
t.Z.prototype.e=function(a,c){c=c||{};c.className+=" vjs-slider-handle";c=t.h.z({innerHTML:'<span class="vjs-control-text">'+this.defaultValue+"</span>"},c);return t.a.prototype.e.call(this,"div",c)};t.ha=t.a.extend();function ca(a,c){a.Q(c);c.d("click",t.bind(a,function(){E(this)}))}
|
||||
t.ha.prototype.e=function(){var a=this.options().kc||"ul";this.u=t.e(a,{className:"vjs-menu-content"});a=t.a.prototype.e.call(this,"div",{append:this.u,className:"vjs-menu"});a.appendChild(this.u);t.d(a,"click",function(a){a.preventDefault();a.stopImmediatePropagation()});return a};t.H=t.t.extend({i:function(a,c){t.t.call(this,a,c);this.selected(c.selected)}});t.H.prototype.e=function(a,c){return t.t.prototype.e.call(this,"li",t.h.z({className:"vjs-menu-item",innerHTML:this.k.label},c))};
|
||||
t.H.prototype.r=function(){this.selected(f)};t.H.prototype.selected=function(a){a?(this.n("vjs-selected"),this.b.setAttribute("aria-selected",f)):(this.p("vjs-selected"),this.b.setAttribute("aria-selected",l))};t.K=t.t.extend({i:function(a,c){t.t.call(this,a,c);this.Aa=this.wa();this.Q(this.Aa);this.N&&0===this.N.length&&this.V();this.d("keyup",this.da);this.b.setAttribute("aria-haspopup",f);this.b.setAttribute("role","button")}});s=t.K.prototype;s.sa=l;
|
||||
s.wa=function(){var a=new t.ha(this.c);this.options().title&&a.ja().appendChild(t.e("li",{className:"vjs-menu-title",innerHTML:t.aa(this.options().title),ee:-1}));if(this.N=this.createItems())for(var c=0;c<this.N.length;c++)ca(a,this.N[c]);return a};s.va=m();s.S=function(){return this.className+" vjs-menu-button "+t.t.prototype.S.call(this)};s.Ya=m();s.Xa=m();s.r=function(){this.W("mouseout",t.bind(this,function(){E(this.Aa);this.b.blur()}));this.sa?I(this):J(this)};
|
||||
s.da=function(a){a.preventDefault();32==a.which||13==a.which?this.sa?I(this):J(this):27==a.which&&this.sa&&I(this)};function J(a){a.sa=f;a.Aa.n("vjs-lock-showing");a.b.setAttribute("aria-pressed",f);a.N&&0<a.N.length&&a.N[0].v().focus()}function I(a){a.sa=l;E(a.Aa);a.b.setAttribute("aria-pressed",l)}t.D=function(a){"number"===typeof a?this.code=a:"string"===typeof a?this.message=a:"object"===typeof a&&t.h.z(this,a);this.message||(this.message=t.D.od[this.code]||"")};t.D.prototype.code=0;
|
||||
t.D.prototype.message="";t.D.prototype.status=k;t.D.Ra="MEDIA_ERR_CUSTOM MEDIA_ERR_ABORTED MEDIA_ERR_NETWORK MEDIA_ERR_DECODE MEDIA_ERR_SRC_NOT_SUPPORTED MEDIA_ERR_ENCRYPTED".split(" ");
|
||||
t.D.od={1:"You aborted the video playback",2:"A network error caused the video download to fail part-way.",3:"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.",4:"The video could not be loaded, either because the server or network failed or because the format is not supported.",5:"The video is encrypted and we do not have the keys to decrypt it."};for(var K=0;K<t.D.Ra.length;K++)t.D[t.D.Ra[K]]=K,t.D.prototype[t.D.Ra[K]]=K;
|
||||
var L,M,N,O;
|
||||
L=["requestFullscreen exitFullscreen fullscreenElement fullscreenEnabled fullscreenchange fullscreenerror".split(" "),"webkitRequestFullscreen webkitExitFullscreen webkitFullscreenElement webkitFullscreenEnabled webkitfullscreenchange webkitfullscreenerror".split(" "),"webkitRequestFullScreen webkitCancelFullScreen webkitCurrentFullScreenElement webkitCancelFullScreen webkitfullscreenchange webkitfullscreenerror".split(" "),"mozRequestFullScreen mozCancelFullScreen mozFullScreenElement mozFullScreenEnabled mozfullscreenchange mozfullscreenerror".split(" "),"msRequestFullscreen msExitFullscreen msFullscreenElement msFullscreenEnabled MSFullscreenChange MSFullscreenError".split(" ")];
|
||||
M=L[0];for(O=0;O<L.length;O++)if(L[O][1]in document){N=L[O];break}if(N){t.Pa.Eb={};for(O=0;O<N.length;O++)t.Pa.Eb[M[O]]=N[O]}
|
||||
t.Player=t.a.extend({i:function(a,c,d){this.P=a;a.id=a.id||"vjs_video_"+t.z++;this.fe=a&&t.Aa(a);c=t.h.A(da(a),c);this.Ua=c.language||t.options.language;this.Fd=c.languages||t.options.languages;this.G={};this.Dc=c.poster;this.yb=c.controls;a.controls=l;c.Hc=l;t.a.call(this,this,c,d);this.controls()?this.n("vjs-controls-enabled"):this.n("vjs-controls-disabled");t.Ca[this.U]=this;c.plugins&&t.h.Z(c.plugins,function(a,c){this[a](c)},this);var e,g,h,j,n,q;e=t.bind(this,this.reportUserActivity);this.d("mousedown",
|
||||
function(){e();clearInterval(g);g=setInterval(e,250)});this.d("mousemove",function(a){if(a.screenX!=n||a.screenY!=q)n=a.screenX,q=a.screenY,e()});this.d("mouseup",function(){e();clearInterval(g)});this.d("keydown",e);this.d("keyup",e);h=setInterval(t.bind(this,function(){this.pa&&(this.pa=l,this.userActive(f),clearTimeout(j),j=setTimeout(t.bind(this,function(){this.pa||this.userActive(l)}),2E3))}),250);this.d("dispose",function(){clearInterval(h);clearTimeout(j)})}});s=t.Player.prototype;
|
||||
s.language=function(a){if(a===b)return this.Ua;this.Ua=a;return this};s.Va=p("Fd");s.l=t.options;s.dispose=function(){this.m("dispose");this.p("dispose");t.Ca[this.U]=k;this.P&&this.P.player&&(this.P.player=k);this.b&&this.b.player&&(this.b.player=k);this.k&&this.k.dispose();t.a.prototype.dispose.call(this)};
|
||||
function da(a){var c={sources:[],tracks:[]};t.h.A(c,t.Aa(a));if(a.hasChildNodes()){var d,e,g,h;a=a.childNodes;g=0;for(h=a.length;g<h;g++)d=a[g],e=d.nodeName.toLowerCase(),"source"===e?c.sources.push(t.Aa(d)):"track"===e&&c.tracks.push(t.Aa(d))}return c}
|
||||
s.e=function(){var a=this.b=t.a.prototype.e.call(this,"div"),c=this.P,d;c.removeAttribute("width");c.removeAttribute("height");if(c.hasChildNodes()){var e,g,h,j,n;e=c.childNodes;g=e.length;for(n=[];g--;)h=e[g],j=h.nodeName.toLowerCase(),"track"===j&&n.push(h);for(e=0;e<n.length;e++)c.removeChild(n[e])}d=t.Aa(c);t.h.Z(d,function(c){a.setAttribute(c,d[c])});c.id+="_html5_api";c.className="vjs-tech";c.player=a.player=this;this.n("vjs-paused");this.width(this.l.width,f);this.height(this.l.height,f);c.parentNode&&
|
||||
c.parentNode.insertBefore(a,c);t.Gb(c,a);this.b=a;this.d("loadstart",this.Md);this.d("waiting",this.Sd);this.d(["canplay","canplaythrough","playing","ended"],this.Rd);this.d("seeking",this.Pd);this.d("seeked",this.Od);this.d("ended",this.Id);this.d("play",this.Ob);this.d("firstplay",this.Kd);this.d("pause",this.Nb);this.d("progress",this.Nd);this.d("durationchange",this.Ac);this.d("fullscreenchange",this.Ld);return a};
|
||||
function P(a,c,d){a.k&&(a.la=l,a.k.dispose(),a.k=l);"Html5"!==c&&a.P&&(t.g.Bb(a.P),a.P=k);a.eb=c;a.la=l;var e=t.h.A({source:d,parentEl:a.b},a.l[c.toLowerCase()]);d&&(a.nc=d.type,d.src==a.G.src&&0<a.G.currentTime&&(e.startTime=a.G.currentTime),a.G.src=d.src);a.k=new window.videojs[c](a,e);a.k.J(function(){this.c.Ga()})}s.Md=function(){this.error(k);this.paused()?(Q(this,l),this.X("play",function(){Q(this,f)})):this.m("firstplay")};s.uc=l;
|
||||
function Q(a,c){c!==b&&a.uc!==c&&((a.uc=c)?(a.n("vjs-has-started"),a.m("firstplay")):a.q("vjs-has-started"))}s.Ob=function(){this.q("vjs-paused");this.n("vjs-playing")};s.Sd=function(){this.n("vjs-waiting")};s.Rd=function(){this.q("vjs-waiting")};s.Pd=function(){this.n("vjs-seeking")};s.Od=function(){this.q("vjs-seeking")};s.Kd=function(){this.l.starttime&&this.currentTime(this.l.starttime);this.n("vjs-has-started")};s.Nb=function(){this.q("vjs-playing");this.n("vjs-paused")};
|
||||
s.Nd=function(){1==this.bufferedPercent()&&this.m("loadedalldata")};s.Id=function(){this.l.loop&&(this.currentTime(0),this.play())};s.Ac=function(){var a=R(this,"duration");a&&(0>a&&(a=Infinity),this.duration(a),Infinity===a?this.n("vjs-live"):this.q("vjs-live"))};s.Ld=function(){this.isFullscreen()?this.n("vjs-fullscreen"):this.q("vjs-fullscreen")};function S(a,c,d){if(a.k&&!a.k.la)a.k.J(function(){this[c](d)});else try{a.k[c](d)}catch(e){throw t.log(e),e;}}
|
||||
function R(a,c){if(a.k&&a.k.la)try{return a.k[c]()}catch(d){throw a.k[c]===b?t.log("Video.js: "+c+" method not defined for "+a.eb+" playback technology.",d):"TypeError"==d.name?(t.log("Video.js: "+c+" unavailable on "+a.eb+" playback technology element.",d),a.k.la=l):t.log(d),d;}}s.play=function(){S(this,"play");return this};s.pause=function(){S(this,"pause");return this};s.paused=function(){return R(this,"paused")===l?l:f};
|
||||
s.currentTime=function(a){return a!==b?(S(this,"setCurrentTime",a),this):this.G.currentTime=R(this,"currentTime")||0};s.duration=function(a){if(a!==b)return this.G.duration=parseFloat(a),this;this.G.duration===b&&this.Ac();return this.G.duration||0};s.remainingTime=function(){return this.duration()-this.currentTime()};s.buffered=function(){var a=R(this,"buffered");if(!a||!a.length)a=t.zb(0,0);return a};
|
||||
s.bufferedPercent=function(){var a=this.duration(),c=this.buffered(),d=0,e,g;if(!a)return 0;for(var h=0;h<c.length;h++)e=c.start(h),g=c.end(h),g>a&&(g=a),d+=g-e;return d/a};s.volume=function(a){if(a!==b)return a=Math.max(0,Math.min(1,parseFloat(a))),this.G.volume=a,S(this,"setVolume",a),t.Yd(a),this;a=parseFloat(R(this,"volume"));return isNaN(a)?1:a};s.muted=function(a){return a!==b?(S(this,"setMuted",a),this):R(this,"muted")||l};s.Ea=function(){return R(this,"supportsFullScreen")||l};s.wc=l;
|
||||
s.isFullscreen=function(a){return a!==b?(this.wc=!!a,this):this.wc};s.isFullScreen=function(a){t.log.warn('player.isFullScreen() has been deprecated, use player.isFullscreen() with a lowercase "s")');return this.isFullscreen(a)};
|
||||
s.requestFullscreen=function(){var a=t.Pa.Eb;this.isFullscreen(f);a?(t.d(document,a.fullscreenchange,t.bind(this,function(c){this.isFullscreen(document[a.fullscreenElement]);this.isFullscreen()===l&&t.p(document,a.fullscreenchange,arguments.callee);this.m("fullscreenchange")})),this.b[a.requestFullscreen]()):this.k.Ea()?S(this,"enterFullScreen"):(this.pc(),this.m("fullscreenchange"));return this};
|
||||
s.exitFullscreen=function(){var a=t.Pa.Eb;this.isFullscreen(l);if(a)document[a.exitFullscreen]();else this.k.Ea()?S(this,"exitFullScreen"):(this.Cb(),this.m("fullscreenchange"));return this};s.pc=function(){this.Bd=f;this.sd=document.documentElement.style.overflow;t.d(document,"keydown",t.bind(this,this.rc));document.documentElement.style.overflow="hidden";t.n(document.body,"vjs-full-window");this.m("enterFullWindow")};
|
||||
s.rc=function(a){27===a.keyCode&&(this.isFullscreen()===f?this.exitFullscreen():this.Cb())};s.Cb=function(){this.Bd=l;t.p(document,"keydown",this.rc);document.documentElement.style.overflow=this.sd;t.q(document.body,"vjs-full-window");this.m("exitFullWindow")};
|
||||
s.src=function(a){if(a===b)return R(this,"src");t.h.isArray(a)?T(this,a):"string"===typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!window.videojs[this.eb].canPlaySource(a)?T(this,[a]):(this.G.src=a.src,this.nc=a.type||"",this.J(function(){S(this,"src",a.src);"auto"==this.l.preload&&this.load();this.l.autoplay&&this.play()})));return this};
|
||||
function T(a,c){var d;a:{d=0;for(var e=a.l.techOrder;d<e.length;d++){var g=t.ba(e[d]),h=window.videojs[g];if(h){if(h.isSupported())for(var j=0,n=c;j<n.length;j++){var q=n[j];if(h.canPlaySource(q)){d={source:q,k:g};break a}}}else t.log.error('The "'+g+'" tech is undefined. Skipped browser support check for that tech.')}d=l}d?d.k===a.eb?a.src(d.source):P(a,d.k,d.source):(a.error({code:4,message:a.options().notSupportedMessage}),a.Ga())}s.load=function(){S(this,"load");return this};
|
||||
s.currentSrc=function(){return R(this,"currentSrc")||this.G.src||""};s.nd=function(){return this.nc||""};s.Da=function(a){return a!==b?(S(this,"setPreload",a),this.l.preload=a,this):R(this,"preload")};s.autoplay=function(a){return a!==b?(S(this,"setAutoplay",a),this.l.autoplay=a,this):R(this,"autoplay")};s.loop=function(a){return a!==b?(S(this,"setLoop",a),this.l.loop=a,this):R(this,"loop")};s.poster=function(a){if(a===b)return this.Dc;this.Dc=a;S(this,"setPoster",a);this.m("posterchange")};
|
||||
s.controls=function(a){return a!==b?(a=!!a,this.yb!==a&&((this.yb=a)?(this.q("vjs-controls-disabled"),this.n("vjs-controls-enabled"),this.m("controlsenabled")):(this.q("vjs-controls-enabled"),this.n("vjs-controls-disabled"),this.m("controlsdisabled"))),this):this.yb};t.Player.prototype.Tb;s=t.Player.prototype;
|
||||
s.usingNativeControls=function(a){return a!==b?(a=!!a,this.Tb!==a&&((this.Tb=a)?(this.n("vjs-using-native-controls"),this.m("usingnativecontrols")):(this.q("vjs-using-native-controls"),this.m("usingcustomcontrols"))),this):this.Tb};s.da=k;s.error=function(a){if(a===b)return this.da;if(a===k)return this.da=a,this.q("vjs-error"),this;this.da=a instanceof t.F?a:new t.F(a);this.m("error");this.n("vjs-error");t.log.error("(CODE:"+this.da.code+" "+t.F.Sa[this.da.code]+")",this.da.message,this.da);return this};
|
||||
s.ended=function(){return R(this,"ended")};s.seeking=function(){return R(this,"seeking")};s.pa=f;s.reportUserActivity=function(){this.pa=f};s.Sb=f;s.userActive=function(a){return a!==b?(a=!!a,a!==this.Sb&&((this.Sb=a)?(this.pa=f,this.q("vjs-user-inactive"),this.n("vjs-user-active"),this.m("useractive")):(this.pa=l,this.k&&this.k.X("mousemove",function(a){a.stopPropagation();a.preventDefault()}),this.q("vjs-user-active"),this.n("vjs-user-inactive"),this.m("userinactive"))),this):this.Sb};
|
||||
s.playbackRate=function(a){return a!==b?(S(this,"setPlaybackRate",a),this):this.k&&this.k.o&&this.k.o.playbackRate?R(this,"playbackRate"):1};t.Ja=t.a.extend();t.Ja.prototype.l={pe:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},liveDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{},playbackRateMenuButton:{}}};t.Ja.prototype.e=function(){return t.e("div",{className:"vjs-control-bar"})};
|
||||
t.Yb=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.Yb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-live-controls vjs-control"});this.v=t.e("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.s("Stream Type")+"</span>"+this.s("LIVE"),"aria-live":"off"});a.appendChild(this.v);return a};t.ac=t.t.extend({i:function(a,c){t.t.call(this,a,c);a.d("play",t.bind(this,this.Ob));a.d("pause",t.bind(this,this.Nb))}});s=t.ac.prototype;s.ua="Play";
|
||||
s.T=function(){return"vjs-play-control "+t.t.prototype.T.call(this)};s.r=function(){this.c.paused()?this.c.play():this.c.pause()};s.Ob=function(){t.q(this.b,"vjs-paused");t.n(this.b,"vjs-playing");this.b.children[0].children[0].innerHTML=this.s("Pause")};s.Nb=function(){t.q(this.b,"vjs-playing");t.n(this.b,"vjs-paused");this.b.children[0].children[0].innerHTML=this.s("Play")};t.hb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("timeupdate",t.bind(this,this.ga))}});
|
||||
t.hb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.v=t.e("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00',"aria-live":"off"});a.appendChild(this.v);return a};t.hb.prototype.ga=function(){var a=this.c.bb?this.c.G.currentTime:this.c.currentTime();this.v.innerHTML='<span class="vjs-control-text">'+this.s("Current Time")+"</span> "+t.za(a,this.c.duration())};
|
||||
t.ib=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("timeupdate",t.bind(this,this.ga))}});t.ib.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.v=t.e("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.s("Duration Time")+"</span> 0:00","aria-live":"off"});a.appendChild(this.v);return a};
|
||||
t.ib.prototype.ga=function(){var a=this.c.duration();a&&(this.v.innerHTML='<span class="vjs-control-text">'+this.s("Duration Time")+"</span> "+t.za(a))};t.gc=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.gc.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};t.pb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("timeupdate",t.bind(this,this.ga))}});
|
||||
t.pb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.v=t.e("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.s("Remaining Time")+"</span> -0:00","aria-live":"off"});a.appendChild(this.v);return a};t.pb.prototype.ga=function(){this.c.duration()&&(this.v.innerHTML='<span class="vjs-control-text">'+this.s("Remaining Time")+"</span> -"+t.za(this.c.remainingTime()))};
|
||||
t.Ka=t.t.extend({i:function(a,c){t.t.call(this,a,c)}});t.Ka.prototype.ua="Fullscreen";t.Ka.prototype.T=function(){return"vjs-fullscreen-control "+t.t.prototype.T.call(this)};t.Ka.prototype.r=function(){this.c.isFullscreen()?(this.c.exitFullscreen(),this.xb.innerHTML=this.s("Fullscreen")):(this.c.requestFullscreen(),this.xb.innerHTML=this.s("Non-Fullscreen"))};t.ob=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.ob.prototype.l={children:{seekBar:{}}};
|
||||
t.ob.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-progress-control vjs-control"})};t.cc=t.Q.extend({i:function(a,c){t.Q.call(this,a,c);a.d("timeupdate",t.bind(this,this.oa));a.J(t.bind(this,this.oa))}});s=t.cc.prototype;s.l={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};s.Cc="timeupdate";s.e=function(){return t.Q.prototype.e.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})};
|
||||
s.oa=function(){var a=this.c.bb?this.c.G.currentTime:this.c.currentTime();this.b.setAttribute("aria-valuenow",t.round(100*this.Fb(),2));this.b.setAttribute("aria-valuetext",t.za(a,this.c.duration()))};s.Fb=function(){return this.c.currentTime()/this.c.duration()};s.Za=function(a){t.Q.prototype.Za.call(this,a);this.c.bb=f;this.je=!this.c.paused();this.c.pause()};s.$a=function(a){a=H(this,a)*this.c.duration();a==this.c.duration()&&(a-=0.1);this.c.currentTime(a)};
|
||||
s.Mb=function(a){t.Q.prototype.Mb.call(this,a);this.c.bb=l;this.je&&this.c.play()};s.Mc=function(){this.c.currentTime(this.c.currentTime()+5)};s.Lc=function(){this.c.currentTime(this.c.currentTime()-5)};t.lb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("progress",t.bind(this,this.update))}});t.lb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.s("Loaded")+"</span>: 0%</span>"})};
|
||||
t.lb.prototype.update=function(){var a,c,d,e,g=this.c.buffered();a=this.c.duration();var h,j=this.c;h=j.buffered();j=j.duration();h=h.end(h.length-1);h>j&&(h=j);j=this.b.children;this.b.style.width=100*(h/a||0)+"%";for(a=0;a<g.length;a++)c=g.start(a),d=g.end(a),(e=j[a])||(e=this.b.appendChild(t.e())),e.style.left=100*(c/h||0)+"%",e.style.width=100*((d-c)/h||0)+"%";for(a=j.length;a>g.length;a--)this.b.removeChild(j[a-1])};t.$b=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});
|
||||
t.$b.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.s("Progress")+"</span>: 0%</span>"})};t.Ma=t.$.extend({i:function(a,c){t.$.call(this,a,c);a.d("timeupdate",t.bind(this,this.ga))}});t.Ma.prototype.defaultValue="00:00";t.Ma.prototype.e=function(){return t.$.prototype.e.call(this,"div",{className:"vjs-seek-handle","aria-live":"off"})};
|
||||
t.Ma.prototype.ga=function(){var a=this.c.bb?this.c.G.currentTime:this.c.currentTime();this.b.innerHTML='<span class="vjs-control-text">'+t.za(a,this.c.duration())+"</span>"};t.rb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.k&&(a.k.o&&a.k.o.volumeControl===l)&&this.n("vjs-hidden");a.d("loadstart",t.bind(this,function(){a.k.o&&a.k.o.volumeControl===l?this.n("vjs-hidden"):this.q("vjs-hidden")}))}});t.rb.prototype.l={children:{volumeBar:{}}};
|
||||
t.rb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-volume-control vjs-control"})};t.qb=t.Q.extend({i:function(a,c){t.Q.call(this,a,c);a.d("volumechange",t.bind(this,this.oa));a.J(t.bind(this,this.oa))}});s=t.qb.prototype;s.oa=function(){this.b.setAttribute("aria-valuenow",t.round(100*this.c.volume(),2));this.b.setAttribute("aria-valuetext",t.round(100*this.c.volume(),2)+"%")};s.l={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};
|
||||
s.Cc="volumechange";s.e=function(){return t.Q.prototype.e.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})};s.$a=function(a){this.c.muted()&&this.c.muted(l);this.c.volume(H(this,a))};s.Fb=function(){return this.c.muted()?0:this.c.volume()};s.Mc=function(){this.c.volume(this.c.volume()+0.1)};s.Lc=function(){this.c.volume(this.c.volume()-0.1)};t.hc=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});
|
||||
t.hc.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};t.sb=t.$.extend();t.sb.prototype.defaultValue="00:00";t.sb.prototype.e=function(){return t.$.prototype.e.call(this,"div",{className:"vjs-volume-handle"})};
|
||||
t.ia=t.t.extend({i:function(a,c){t.t.call(this,a,c);a.d("volumechange",t.bind(this,this.update));a.k&&(a.k.o&&a.k.o.volumeControl===l)&&this.n("vjs-hidden");a.d("loadstart",t.bind(this,function(){a.k.o&&a.k.o.volumeControl===l?this.n("vjs-hidden"):this.q("vjs-hidden")}))}});t.ia.prototype.e=function(){return t.t.prototype.e.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">'+this.s("Mute")+"</span></div>"})};
|
||||
t.ia.prototype.r=function(){this.c.muted(this.c.muted()?l:f)};t.ia.prototype.update=function(){var a=this.c.volume(),c=3;0===a||this.c.muted()?c=0:0.33>a?c=1:0.67>a&&(c=2);this.c.muted()?this.b.children[0].children[0].innerHTML!=this.s("Unmute")&&(this.b.children[0].children[0].innerHTML=this.s("Unmute")):this.b.children[0].children[0].innerHTML!=this.s("Mute")&&(this.b.children[0].children[0].innerHTML=this.s("Mute"));for(a=0;4>a;a++)t.q(this.b,"vjs-vol-"+a);t.n(this.b,"vjs-vol-"+c)};
|
||||
t.sa=t.L.extend({i:function(a,c){t.L.call(this,a,c);a.d("volumechange",t.bind(this,this.update));a.k&&(a.k.o&&a.k.o.Sc===l)&&this.n("vjs-hidden");a.d("loadstart",t.bind(this,function(){a.k.o&&a.k.o.Sc===l?this.n("vjs-hidden"):this.q("vjs-hidden")}));this.n("vjs-menu-button")}});t.sa.prototype.xa=function(){var a=new t.ha(this.c,{lc:"div"}),c=new t.qb(this.c,t.h.A({vertical:f},this.l.ve));a.R(c);return a};t.sa.prototype.r=function(){t.ia.prototype.r.call(this);t.L.prototype.r.call(this)};
|
||||
t.sa.prototype.e=function(){return t.t.prototype.e.call(this,"div",{className:"vjs-volume-menu-button vjs-menu-button vjs-control",innerHTML:'<div><span class="vjs-control-text">'+this.s("Mute")+"</span></div>"})};t.sa.prototype.update=t.ia.prototype.update;t.bc=t.L.extend({i:function(a,c){t.L.call(this,a,c);this.Rc();this.Qc();a.d("loadstart",t.bind(this,this.Rc));a.d("ratechange",t.bind(this,this.Qc))}});s=t.bc.prototype;
|
||||
s.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-playback-rate vjs-menu-button vjs-control",innerHTML:'<div class="vjs-control-content"><span class="vjs-control-text">'+this.s("Playback Rate")+"</span></div>"});this.yc=t.e("div",{className:"vjs-playback-rate-value",innerHTML:1});a.appendChild(this.yc);return a};s.xa=function(){var a=new t.ha(this.j()),c=this.j().options().playbackRates;if(c)for(var d=c.length-1;0<=d;d--)a.R(new t.nb(this.j(),{rate:c[d]+"x"}));return a};
|
||||
s.oa=function(){this.w().setAttribute("aria-valuenow",this.j().playbackRate())};s.r=function(){for(var a=this.j().playbackRate(),c=this.j().options().playbackRates,d=c[0],e=0;e<c.length;e++)if(c[e]>a){d=c[e];break}this.j().playbackRate(d)};function U(a){return a.j().k&&a.j().k.o.playbackRate&&a.j().options().playbackRates&&0<a.j().options().playbackRates.length}s.Rc=function(){U(this)?this.q("vjs-hidden"):this.n("vjs-hidden")};s.Qc=function(){U(this)&&(this.yc.innerHTML=this.j().playbackRate()+"x")};
|
||||
t.nb=t.I.extend({lc:"button",i:function(a,c){var d=this.label=c.rate,e=this.Fc=parseFloat(d,10);c.label=d;c.selected=1===e;t.I.call(this,a,c);this.j().d("ratechange",t.bind(this,this.update))}});t.nb.prototype.r=function(){t.I.prototype.r.call(this);this.j().playbackRate(this.Fc)};t.nb.prototype.update=function(){this.selected(this.j().playbackRate()==this.Fc)};
|
||||
t.La=t.t.extend({i:function(a,c){t.t.call(this,a,c);a.poster()&&this.src(a.poster());(!a.poster()||!a.controls())&&this.W();a.d("posterchange",t.bind(this,function(){this.src(a.poster())}));a.d("play",t.bind(this,this.W))}});var ea="backgroundSize"in t.B.style;t.La.prototype.e=function(){var a=t.e("div",{className:"vjs-poster",tabIndex:-1});ea||a.appendChild(t.e("img"));return a};t.La.prototype.src=function(a){var c=this.w();a!==b&&(ea?c.style.backgroundImage='url("'+a+'")':c.firstChild.src=a)};
|
||||
t.La.prototype.r=function(){this.j().controls()&&this.c.play()};t.Zb=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.Zb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-loading-spinner"})};t.fb=t.t.extend();t.fb.prototype.e=function(){return t.t.prototype.e.call(this,"div",{className:"vjs-big-play-button",innerHTML:'<span aria-hidden="true"></span>',"aria-label":"play video"})};t.fb.prototype.r=function(){this.c.play()};
|
||||
t.jb=t.a.extend({i:function(a,c){t.a.call(this,a,c);this.update();a.d("error",t.bind(this,this.update))}});t.jb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-error-display"});this.v=t.e("div");a.appendChild(this.v);return a};t.jb.prototype.update=function(){this.j().error()&&(this.v.innerHTML=this.s(this.j().error().message))};
|
||||
t.u=t.a.extend({i:function(a,c,d){c=c||{};c.Hc=l;t.a.call(this,a,c,d);this.o.progressEvents||(this.zc=f,this.Ec=setInterval(t.bind(this,function(){var a=this.j().bufferedPercent();this.jd!=a&&this.j().m("progress");this.jd=a;1===a&&clearInterval(this.Ec)}),500));this.o.timeupdateEvents||(this.Kb=f,this.j().d("play",t.bind(this,this.Pc)),this.j().d("pause",t.bind(this,this.cb)),this.X("timeupdate",function(){this.o.timeupdateEvents=f;fa(this)}));var e,g;g=this;e=this.j();a=function(){if(e.controls()&&
|
||||
!e.usingNativeControls()){var a;g.d("mousedown",g.r);g.d("touchstart",function(){a=this.c.userActive()});g.d("touchmove",function(){a&&this.j().reportUserActivity()});g.d("touchend",function(a){a.preventDefault()});G(g);g.d("tap",g.Qd)}};c=t.bind(g,g.Wd);this.J(a);e.d("controlsenabled",a);e.d("controlsdisabled",c);this.J(function(){this.networkState&&0<this.networkState()&&this.j().m("loadstart")})}});s=t.u.prototype;
|
||||
s.Wd=function(){this.p("tap");this.p("touchstart");this.p("touchmove");this.p("touchleave");this.p("touchcancel");this.p("touchend");this.p("click");this.p("mousedown")};s.r=function(a){0===a.button&&this.j().controls()&&(this.j().paused()?this.j().play():this.j().pause())};s.Qd=function(){this.j().userActive(!this.j().userActive())};function fa(a){a.Kb=l;a.cb();a.p("play",a.Pc);a.p("pause",a.cb)}
|
||||
s.Pc=function(){this.mc&&this.cb();this.mc=setInterval(t.bind(this,function(){this.j().m("timeupdate")}),250)};s.cb=function(){clearInterval(this.mc);this.j().m("timeupdate")};s.dispose=function(){this.zc&&(this.zc=l,clearInterval(this.Ec));this.Kb&&fa(this);t.a.prototype.dispose.call(this)};s.Qb=function(){this.Kb&&this.j().m("timeupdate")};s.Jc=m();s.o={volumeControl:f,fullscreenResize:l,playbackRate:l,progressEvents:l,timeupdateEvents:l};t.media={};
|
||||
t.g=t.u.extend({i:function(a,c,d){this.o.volumeControl=t.g.ld();this.o.playbackRate=t.g.kd();this.o.movingMediaElementInDOM=!t.Yc;this.o.fullscreenResize=f;this.o.progressEvents=f;t.u.call(this,a,c,d);for(d=t.g.kb.length-1;0<=d;d--)t.d(this.b,t.g.kb[d],t.bind(this,this.ud));if((c=c.source)&&this.b.currentSrc!==c.src)this.b.src=c.src;if(t.ec&&a.options().nativeControlsForTouch!==l){var e,g,h,j;e=this;g=this.j();c=g.controls();e.b.controls=!!c;h=function(){e.b.controls=f};j=function(){e.b.controls=
|
||||
l};g.d("controlsenabled",h);g.d("controlsdisabled",j);c=function(){g.p("controlsenabled",h);g.p("controlsdisabled",j)};e.d("dispose",c);g.d("usingcustomcontrols",c);g.usingNativeControls(f)}a.J(function(){this.P&&(this.l.autoplay&&this.paused())&&(delete this.P.poster,this.play())});this.Ga()}});s=t.g.prototype;s.dispose=function(){t.g.Bb(this.b);t.u.prototype.dispose.call(this)};
|
||||
s.e=function(){var a=this.c,c=a.P,d;if(!c||this.o.movingMediaElementInDOM===l)c?(d=c.cloneNode(l),t.g.Bb(c),c=d,a.P=k):(c=t.e("video"),t.Ic(c,t.h.A(a.fe||{},{id:a.id()+"_html5_api","class":"vjs-tech"}))),c.player=a,t.Gb(c,a.w());d=["autoplay","preload","loop","muted"];for(var e=d.length-1;0<=e;e--){var g=d[e],h={};"undefined"!==typeof a.l[g]&&(h[g]=a.l[g]);t.Ic(c,h)}return c};s.ud=function(a){"error"==a.type?this.j().error(this.error().code):(a.bubbles=l,this.j().m(a))};s.play=function(){this.b.play()};
|
||||
s.pause=function(){this.b.pause()};s.paused=function(){return this.b.paused};s.currentTime=function(){return this.b.currentTime};s.Qb=function(a){try{this.b.currentTime=a}catch(c){t.log(c,"Video is not ready. (Video.js)")}};s.duration=function(){return this.b.duration||0};s.buffered=function(){return this.b.buffered};s.volume=function(){return this.b.volume};s.ce=function(a){this.b.volume=a};s.muted=function(){return this.b.muted};s.$d=function(a){this.b.muted=a};s.width=function(){return this.b.offsetWidth};
|
||||
s.height=function(){return this.b.offsetHeight};s.Ea=function(){return"function"==typeof this.b.webkitEnterFullScreen&&(/Android/.test(t.M)||!/Chrome|Mac OS X 10.5/.test(t.M))?f:l};s.oc=function(){var a=this.b;a.paused&&a.networkState<=a.ke?(this.b.play(),setTimeout(function(){a.pause();a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()};s.vd=function(){this.b.webkitExitFullScreen()};s.src=function(a){this.b.src=a};s.load=function(){this.b.load()};s.currentSrc=function(){return this.b.currentSrc};
|
||||
s.poster=function(){return this.b.poster};s.Jc=function(a){this.b.poster=a};s.Da=function(){return this.b.Da};s.be=function(a){this.b.Da=a};s.autoplay=function(){return this.b.autoplay};s.Xd=function(a){this.b.autoplay=a};s.controls=function(){return this.b.controls};s.loop=function(){return this.b.loop};s.Zd=function(a){this.b.loop=a};s.error=function(){return this.b.error};s.seeking=function(){return this.b.seeking};s.ended=function(){return this.b.ended};s.playbackRate=function(){return this.b.playbackRate};
|
||||
s.ae=function(a){this.b.playbackRate=a};s.networkState=function(){return this.b.networkState};t.g.isSupported=function(){try{t.B.volume=0.5}catch(a){return l}return!!t.B.canPlayType};t.g.vb=function(a){try{return!!t.B.canPlayType(a.type)}catch(c){return""}};t.g.ld=function(){var a=t.B.volume;t.B.volume=a/2+0.1;return a!==t.B.volume};t.g.kd=function(){var a=t.B.playbackRate;t.B.playbackRate=a/2+0.1;return a!==t.B.playbackRate};var V,ga=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,ha=/^video\/mp4/i;
|
||||
t.g.Bc=function(){4<=t.Ub&&(V||(V=t.B.constructor.prototype.canPlayType),t.B.constructor.prototype.canPlayType=function(a){return a&&ga.test(a)?"maybe":V.call(this,a)});t.bd&&(V||(V=t.B.constructor.prototype.canPlayType),t.B.constructor.prototype.canPlayType=function(a){return a&&ha.test(a)?"maybe":V.call(this,a)})};t.g.ie=function(){var a=t.B.constructor.prototype.canPlayType;t.B.constructor.prototype.canPlayType=V;V=k;return a};t.g.Bc();t.g.kb="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");
|
||||
M=L[0];for(O=0;O<L.length;O++)if(L[O][1]in document){N=L[O];break}if(N){t.Oa.Eb={};for(O=0;O<N.length;O++)t.Oa.Eb[M[O]]=N[O]}
|
||||
t.Player=t.a.extend({i:function(a,c,d){this.O=a;a.id=a.id||"vjs_video_"+t.w++;this.fe=a&&t.za(a);c=t.h.z(da(a),c);this.Ta=c.language||t.options.language;this.Fd=c.languages||t.options.languages;this.F={};this.Cc=c.poster;this.yb=c.controls;a.controls=l;c.Gc=l;t.a.call(this,this,c,d);this.controls()?this.n("vjs-controls-enabled"):this.n("vjs-controls-disabled");t.Ba[this.T]=this;c.plugins&&t.h.Y(c.plugins,function(a,c){this[a](c)},this);var e,g,h,j,n,q;e=t.bind(this,this.reportUserActivity);this.d("mousedown",
|
||||
function(){e();clearInterval(g);g=setInterval(e,250)});this.d("mousemove",function(a){if(a.screenX!=n||a.screenY!=q)n=a.screenX,q=a.screenY,e()});this.d("mouseup",function(){e();clearInterval(g)});this.d("keydown",e);this.d("keyup",e);h=setInterval(t.bind(this,function(){if(this.pa){this.pa=l;this.userActive(f);clearTimeout(j);var a=this.options().inactivityTimeout;0<a&&(j=setTimeout(t.bind(this,function(){this.pa||this.userActive(l)}),a))}}),250);this.d("dispose",function(){clearInterval(h);clearTimeout(j)})}});
|
||||
s=t.Player.prototype;s.language=function(a){if(a===b)return this.Ta;this.Ta=a;return this};s.Ua=p("Fd");s.k=t.options;s.dispose=function(){this.l("dispose");this.o("dispose");t.Ba[this.T]=k;this.O&&this.O.player&&(this.O.player=k);this.b&&this.b.player&&(this.b.player=k);this.m&&this.m.dispose();t.a.prototype.dispose.call(this)};
|
||||
function da(a){var c={sources:[],tracks:[]};t.h.z(c,t.za(a));if(a.hasChildNodes()){var d,e,g,h;a=a.childNodes;g=0;for(h=a.length;g<h;g++)d=a[g],e=d.nodeName.toLowerCase(),"source"===e?c.sources.push(t.za(d)):"track"===e&&c.tracks.push(t.za(d))}return c}
|
||||
s.e=function(){var a=this.b=t.a.prototype.e.call(this,"div"),c=this.O,d;c.removeAttribute("width");c.removeAttribute("height");if(c.hasChildNodes()){var e,g,h,j,n;e=c.childNodes;g=e.length;for(n=[];g--;)h=e[g],j=h.nodeName.toLowerCase(),"track"===j&&n.push(h);for(e=0;e<n.length;e++)c.removeChild(n[e])}d=t.za(c);t.h.Y(d,function(c){a.setAttribute(c,d[c])});c.id+="_html5_api";c.className="vjs-tech";c.player=a.player=this;this.n("vjs-paused");this.width(this.k.width,f);this.height(this.k.height,f);c.parentNode&&
|
||||
c.parentNode.insertBefore(a,c);t.Gb(c,a);this.b=a;this.d("loadstart",this.Md);this.d("waiting",this.Sd);this.d(["canplay","canplaythrough","playing","ended"],this.Rd);this.d("seeking",this.Pd);this.d("seeked",this.Od);this.d("ended",this.Id);this.d("play",this.Nb);this.d("firstplay",this.Kd);this.d("pause",this.Mb);this.d("progress",this.Nd);this.d("durationchange",this.zc);this.d("fullscreenchange",this.Ld);return a};
|
||||
function P(a,c,d){a.m&&(a.la=l,a.m.dispose(),a.m=l);"Html5"!==c&&a.O&&(t.g.Bb(a.O),a.O=k);a.eb=c;a.la=l;var e=t.h.z({source:d,parentEl:a.b},a.k[c.toLowerCase()]);d&&(a.mc=d.type,d.src==a.F.src&&0<a.F.currentTime&&(e.startTime=a.F.currentTime),a.F.src=d.src);a.m=new window.videojs[c](a,e);a.m.I(function(){this.c.Fa()})}s.Md=function(){this.error(k);this.paused()?(Q(this,l),this.W("play",function(){Q(this,f)})):this.l("firstplay")};s.tc=l;
|
||||
function Q(a,c){c!==b&&a.tc!==c&&((a.tc=c)?(a.n("vjs-has-started"),a.l("firstplay")):a.p("vjs-has-started"))}s.Nb=function(){this.p("vjs-paused");this.n("vjs-playing")};s.Sd=function(){this.n("vjs-waiting")};s.Rd=function(){this.p("vjs-waiting")};s.Pd=function(){this.n("vjs-seeking")};s.Od=function(){this.p("vjs-seeking")};s.Kd=function(){this.k.starttime&&this.currentTime(this.k.starttime);this.n("vjs-has-started")};s.Mb=function(){this.p("vjs-playing");this.n("vjs-paused")};
|
||||
s.Nd=function(){1==this.bufferedPercent()&&this.l("loadedalldata")};s.Id=function(){this.k.loop&&(this.currentTime(0),this.play())};s.zc=function(){var a=R(this,"duration");a&&(0>a&&(a=Infinity),this.duration(a),Infinity===a?this.n("vjs-live"):this.p("vjs-live"))};s.Ld=function(){this.isFullscreen()?this.n("vjs-fullscreen"):this.p("vjs-fullscreen")};function S(a,c,d){if(a.m&&!a.m.la)a.m.I(function(){this[c](d)});else try{a.m[c](d)}catch(e){throw t.log(e),e;}}
|
||||
function R(a,c){if(a.m&&a.m.la)try{return a.m[c]()}catch(d){throw a.m[c]===b?t.log("Video.js: "+c+" method not defined for "+a.eb+" playback technology.",d):"TypeError"==d.name?(t.log("Video.js: "+c+" unavailable on "+a.eb+" playback technology element.",d),a.m.la=l):t.log(d),d;}}s.play=function(){S(this,"play");return this};s.pause=function(){S(this,"pause");return this};s.paused=function(){return R(this,"paused")===l?l:f};
|
||||
s.currentTime=function(a){return a!==b?(S(this,"setCurrentTime",a),this):this.F.currentTime=R(this,"currentTime")||0};s.duration=function(a){if(a!==b)return this.F.duration=parseFloat(a),this;this.F.duration===b&&this.zc();return this.F.duration||0};s.remainingTime=function(){return this.duration()-this.currentTime()};s.buffered=function(){var a=R(this,"buffered");if(!a||!a.length)a=t.zb(0,0);return a};
|
||||
s.bufferedPercent=function(){var a=this.duration(),c=this.buffered(),d=0,e,g;if(!a)return 0;for(var h=0;h<c.length;h++)e=c.start(h),g=c.end(h),g>a&&(g=a),d+=g-e;return d/a};s.volume=function(a){if(a!==b)return a=Math.max(0,Math.min(1,parseFloat(a))),this.F.volume=a,S(this,"setVolume",a),t.Yd(a),this;a=parseFloat(R(this,"volume"));return isNaN(a)?1:a};s.muted=function(a){return a!==b?(S(this,"setMuted",a),this):R(this,"muted")||l};s.Da=function(){return R(this,"supportsFullScreen")||l};s.vc=l;
|
||||
s.isFullscreen=function(a){return a!==b?(this.vc=!!a,this):this.vc};s.isFullScreen=function(a){t.log.warn('player.isFullScreen() has been deprecated, use player.isFullscreen() with a lowercase "s")');return this.isFullscreen(a)};
|
||||
s.requestFullscreen=function(){var a=t.Oa.Eb;this.isFullscreen(f);a?(t.d(document,a.fullscreenchange,t.bind(this,function(c){this.isFullscreen(document[a.fullscreenElement]);this.isFullscreen()===l&&t.o(document,a.fullscreenchange,arguments.callee);this.l("fullscreenchange")})),this.b[a.requestFullscreen]()):this.m.Da()?S(this,"enterFullScreen"):(this.oc(),this.l("fullscreenchange"));return this};
|
||||
s.exitFullscreen=function(){var a=t.Oa.Eb;this.isFullscreen(l);if(a)document[a.exitFullscreen]();else this.m.Da()?S(this,"exitFullScreen"):(this.Cb(),this.l("fullscreenchange"));return this};s.oc=function(){this.Ad=f;this.rd=document.documentElement.style.overflow;t.d(document,"keydown",t.bind(this,this.qc));document.documentElement.style.overflow="hidden";t.n(document.body,"vjs-full-window");this.l("enterFullWindow")};
|
||||
s.qc=function(a){27===a.keyCode&&(this.isFullscreen()===f?this.exitFullscreen():this.Cb())};s.Cb=function(){this.Ad=l;t.o(document,"keydown",this.qc);document.documentElement.style.overflow=this.rd;t.p(document.body,"vjs-full-window");this.l("exitFullWindow")};
|
||||
s.selectSource=function(a){for(var c=0,d=this.k.techOrder;c<d.length;c++){var e=t.aa(d[c]),g=window.videojs[e];if(g){if(g.isSupported())for(var h=0,j=a;h<j.length;h++){var n=j[h];if(g.canPlaySource(n))return{source:n,m:e}}}else t.log.error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.')}return l};
|
||||
s.src=function(a){if(a===b)return R(this,"src");t.h.isArray(a)?T(this,a):"string"===typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!window.videojs[this.eb].canPlaySource(a)?T(this,[a]):(this.F.src=a.src,this.mc=a.type||"",this.I(function(){S(this,"src",a.src);"auto"==this.k.preload&&this.load();this.k.autoplay&&this.play()})));return this};
|
||||
function T(a,c){var d=a.selectSource(c);d?d.m===a.eb?a.src(d.source):P(a,d.m,d.source):(setTimeout(t.bind(a,function(){this.error({code:4,message:this.s(this.options().notSupportedMessage)})}),0),a.Fa())}s.load=function(){S(this,"load");return this};s.currentSrc=function(){return R(this,"currentSrc")||this.F.src||""};s.md=function(){return this.mc||""};s.Ca=function(a){return a!==b?(S(this,"setPreload",a),this.k.preload=a,this):R(this,"preload")};
|
||||
s.autoplay=function(a){return a!==b?(S(this,"setAutoplay",a),this.k.autoplay=a,this):R(this,"autoplay")};s.loop=function(a){return a!==b?(S(this,"setLoop",a),this.k.loop=a,this):R(this,"loop")};s.poster=function(a){if(a===b)return this.Cc;this.Cc=a;S(this,"setPoster",a);this.l("posterchange")};
|
||||
s.controls=function(a){return a!==b?(a=!!a,this.yb!==a&&((this.yb=a)?(this.p("vjs-controls-disabled"),this.n("vjs-controls-enabled"),this.l("controlsenabled")):(this.p("vjs-controls-enabled"),this.n("vjs-controls-disabled"),this.l("controlsdisabled"))),this):this.yb};t.Player.prototype.Sb;s=t.Player.prototype;
|
||||
s.usingNativeControls=function(a){return a!==b?(a=!!a,this.Sb!==a&&((this.Sb=a)?(this.n("vjs-using-native-controls"),this.l("usingnativecontrols")):(this.p("vjs-using-native-controls"),this.l("usingcustomcontrols"))),this):this.Sb};s.ca=k;s.error=function(a){if(a===b)return this.ca;if(a===k)return this.ca=a,this.p("vjs-error"),this;this.ca=a instanceof t.D?a:new t.D(a);this.l("error");this.n("vjs-error");t.log.error("(CODE:"+this.ca.code+" "+t.D.Ra[this.ca.code]+")",this.ca.message,this.ca);return this};
|
||||
s.ended=function(){return R(this,"ended")};s.seeking=function(){return R(this,"seeking")};s.pa=f;s.reportUserActivity=function(){this.pa=f};s.Rb=f;s.userActive=function(a){return a!==b?(a=!!a,a!==this.Rb&&((this.Rb=a)?(this.pa=f,this.p("vjs-user-inactive"),this.n("vjs-user-active"),this.l("useractive")):(this.pa=l,this.m&&this.m.W("mousemove",function(a){a.stopPropagation();a.preventDefault()}),this.p("vjs-user-active"),this.n("vjs-user-inactive"),this.l("userinactive"))),this):this.Rb};
|
||||
s.playbackRate=function(a){return a!==b?(S(this,"setPlaybackRate",a),this):this.m&&this.m.featuresPlaybackRate?R(this,"playbackRate"):1};t.Ia=t.a.extend();t.Ia.prototype.k={te:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},liveDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{},playbackRateMenuButton:{}}};t.Ia.prototype.e=function(){return t.e("div",{className:"vjs-control-bar"})};
|
||||
t.Xb=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.Xb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-live-controls vjs-control"});this.u=t.e("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.s("Stream Type")+"</span>"+this.s("LIVE"),"aria-live":"off"});a.appendChild(this.u);return a};t.$b=t.t.extend({i:function(a,c){t.t.call(this,a,c);a.d("play",t.bind(this,this.Nb));a.d("pause",t.bind(this,this.Mb))}});s=t.$b.prototype;s.ta="Play";
|
||||
s.S=function(){return"vjs-play-control "+t.t.prototype.S.call(this)};s.r=function(){this.c.paused()?this.c.play():this.c.pause()};s.Nb=function(){t.p(this.b,"vjs-paused");t.n(this.b,"vjs-playing");this.b.children[0].children[0].innerHTML=this.s("Pause")};s.Mb=function(){t.p(this.b,"vjs-playing");t.n(this.b,"vjs-paused");this.b.children[0].children[0].innerHTML=this.s("Play")};t.hb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("timeupdate",t.bind(this,this.fa))}});
|
||||
t.hb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.u=t.e("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00',"aria-live":"off"});a.appendChild(this.u);return a};t.hb.prototype.fa=function(){var a=this.c.bb?this.c.F.currentTime:this.c.currentTime();this.u.innerHTML='<span class="vjs-control-text">'+this.s("Current Time")+"</span> "+t.ya(a,this.c.duration())};
|
||||
t.ib=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("timeupdate",t.bind(this,this.fa))}});t.ib.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.u=t.e("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.s("Duration Time")+"</span> 0:00","aria-live":"off"});a.appendChild(this.u);return a};
|
||||
t.ib.prototype.fa=function(){var a=this.c.duration();a&&(this.u.innerHTML='<span class="vjs-control-text">'+this.s("Duration Time")+"</span> "+t.ya(a))};t.fc=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.fc.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};t.pb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("timeupdate",t.bind(this,this.fa))}});
|
||||
t.pb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.u=t.e("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.s("Remaining Time")+"</span> -0:00","aria-live":"off"});a.appendChild(this.u);return a};t.pb.prototype.fa=function(){this.c.duration()&&(this.u.innerHTML='<span class="vjs-control-text">'+this.s("Remaining Time")+"</span> -"+t.ya(this.c.remainingTime()))};
|
||||
t.Ja=t.t.extend({i:function(a,c){t.t.call(this,a,c)}});t.Ja.prototype.ta="Fullscreen";t.Ja.prototype.S=function(){return"vjs-fullscreen-control "+t.t.prototype.S.call(this)};t.Ja.prototype.r=function(){this.c.isFullscreen()?(this.c.exitFullscreen(),this.xb.innerHTML=this.s("Fullscreen")):(this.c.requestFullscreen(),this.xb.innerHTML=this.s("Non-Fullscreen"))};t.ob=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.ob.prototype.k={children:{seekBar:{}}};
|
||||
t.ob.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-progress-control vjs-control"})};t.bc=t.P.extend({i:function(a,c){t.P.call(this,a,c);a.d("timeupdate",t.bind(this,this.oa));a.I(t.bind(this,this.oa))}});s=t.bc.prototype;s.k={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};s.Bc="timeupdate";s.e=function(){return t.P.prototype.e.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})};
|
||||
s.oa=function(){var a=this.c.bb?this.c.F.currentTime:this.c.currentTime();this.b.setAttribute("aria-valuenow",t.round(100*this.Fb(),2));this.b.setAttribute("aria-valuetext",t.ya(a,this.c.duration()))};s.Fb=function(){return this.c.currentTime()/this.c.duration()};s.Za=function(a){t.P.prototype.Za.call(this,a);this.c.bb=f;this.je=!this.c.paused();this.c.pause()};s.$a=function(a){a=H(this,a)*this.c.duration();a==this.c.duration()&&(a-=0.1);this.c.currentTime(a)};
|
||||
s.Lb=function(a){t.P.prototype.Lb.call(this,a);this.c.bb=l;this.je&&this.c.play()};s.Lc=function(){this.c.currentTime(this.c.currentTime()+5)};s.Kc=function(){this.c.currentTime(this.c.currentTime()-5)};t.lb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.d("progress",t.bind(this,this.update))}});t.lb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.s("Loaded")+"</span>: 0%</span>"})};
|
||||
t.lb.prototype.update=function(){var a,c,d,e,g=this.c.buffered();a=this.c.duration();var h,j=this.c;h=j.buffered();j=j.duration();h=h.end(h.length-1);h>j&&(h=j);j=this.b.children;this.b.style.width=100*(h/a||0)+"%";for(a=0;a<g.length;a++)c=g.start(a),d=g.end(a),(e=j[a])||(e=this.b.appendChild(t.e())),e.style.left=100*(c/h||0)+"%",e.style.width=100*((d-c)/h||0)+"%";for(a=j.length;a>g.length;a--)this.b.removeChild(j[a-1])};t.Zb=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});
|
||||
t.Zb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.s("Progress")+"</span>: 0%</span>"})};t.La=t.Z.extend({i:function(a,c){t.Z.call(this,a,c);a.d("timeupdate",t.bind(this,this.fa))}});t.La.prototype.defaultValue="00:00";t.La.prototype.e=function(){return t.Z.prototype.e.call(this,"div",{className:"vjs-seek-handle","aria-live":"off"})};
|
||||
t.La.prototype.fa=function(){var a=this.c.bb?this.c.F.currentTime:this.c.currentTime();this.b.innerHTML='<span class="vjs-control-text">'+t.ya(a,this.c.duration())+"</span>"};t.rb=t.a.extend({i:function(a,c){t.a.call(this,a,c);a.m&&a.m.featuresVolumeControl===l&&this.n("vjs-hidden");a.d("loadstart",t.bind(this,function(){a.m.featuresVolumeControl===l?this.n("vjs-hidden"):this.p("vjs-hidden")}))}});t.rb.prototype.k={children:{volumeBar:{}}};
|
||||
t.rb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-volume-control vjs-control"})};t.qb=t.P.extend({i:function(a,c){t.P.call(this,a,c);a.d("volumechange",t.bind(this,this.oa));a.I(t.bind(this,this.oa))}});s=t.qb.prototype;s.oa=function(){this.b.setAttribute("aria-valuenow",t.round(100*this.c.volume(),2));this.b.setAttribute("aria-valuetext",t.round(100*this.c.volume(),2)+"%")};s.k={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};
|
||||
s.Bc="volumechange";s.e=function(){return t.P.prototype.e.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})};s.$a=function(a){this.c.muted()&&this.c.muted(l);this.c.volume(H(this,a))};s.Fb=function(){return this.c.muted()?0:this.c.volume()};s.Lc=function(){this.c.volume(this.c.volume()+0.1)};s.Kc=function(){this.c.volume(this.c.volume()-0.1)};t.gc=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});
|
||||
t.gc.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};t.sb=t.Z.extend();t.sb.prototype.defaultValue="00:00";t.sb.prototype.e=function(){return t.Z.prototype.e.call(this,"div",{className:"vjs-volume-handle"})};
|
||||
t.ia=t.t.extend({i:function(a,c){t.t.call(this,a,c);a.d("volumechange",t.bind(this,this.update));a.m&&a.m.featuresVolumeControl===l&&this.n("vjs-hidden");a.d("loadstart",t.bind(this,function(){a.m.featuresVolumeControl===l?this.n("vjs-hidden"):this.p("vjs-hidden")}))}});t.ia.prototype.e=function(){return t.t.prototype.e.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">'+this.s("Mute")+"</span></div>"})};
|
||||
t.ia.prototype.r=function(){this.c.muted(this.c.muted()?l:f)};t.ia.prototype.update=function(){var a=this.c.volume(),c=3;0===a||this.c.muted()?c=0:0.33>a?c=1:0.67>a&&(c=2);this.c.muted()?this.b.children[0].children[0].innerHTML!=this.s("Unmute")&&(this.b.children[0].children[0].innerHTML=this.s("Unmute")):this.b.children[0].children[0].innerHTML!=this.s("Mute")&&(this.b.children[0].children[0].innerHTML=this.s("Mute"));for(a=0;4>a;a++)t.p(this.b,"vjs-vol-"+a);t.n(this.b,"vjs-vol-"+c)};
|
||||
t.ra=t.K.extend({i:function(a,c){t.K.call(this,a,c);a.d("volumechange",t.bind(this,this.update));a.m&&a.m.featuresVolumeControl===l&&this.n("vjs-hidden");a.d("loadstart",t.bind(this,function(){a.m.featuresVolumeControl===l?this.n("vjs-hidden"):this.p("vjs-hidden")}));this.n("vjs-menu-button")}});t.ra.prototype.wa=function(){var a=new t.ha(this.c,{kc:"div"}),c=new t.qb(this.c,t.h.z({vertical:f},this.k.xe));a.Q(c);return a};t.ra.prototype.r=function(){t.ia.prototype.r.call(this);t.K.prototype.r.call(this)};
|
||||
t.ra.prototype.e=function(){return t.t.prototype.e.call(this,"div",{className:"vjs-volume-menu-button vjs-menu-button vjs-control",innerHTML:'<div><span class="vjs-control-text">'+this.s("Mute")+"</span></div>"})};t.ra.prototype.update=t.ia.prototype.update;t.ac=t.K.extend({i:function(a,c){t.K.call(this,a,c);this.Qc();this.Pc();a.d("loadstart",t.bind(this,this.Qc));a.d("ratechange",t.bind(this,this.Pc))}});s=t.ac.prototype;
|
||||
s.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-playback-rate vjs-menu-button vjs-control",innerHTML:'<div class="vjs-control-content"><span class="vjs-control-text">'+this.s("Playback Rate")+"</span></div>"});this.xc=t.e("div",{className:"vjs-playback-rate-value",innerHTML:1});a.appendChild(this.xc);return a};s.wa=function(){var a=new t.ha(this.j()),c=this.j().options().playbackRates;if(c)for(var d=c.length-1;0<=d;d--)a.Q(new t.nb(this.j(),{rate:c[d]+"x"}));return a};
|
||||
s.oa=function(){this.v().setAttribute("aria-valuenow",this.j().playbackRate())};s.r=function(){for(var a=this.j().playbackRate(),c=this.j().options().playbackRates,d=c[0],e=0;e<c.length;e++)if(c[e]>a){d=c[e];break}this.j().playbackRate(d)};function U(a){return a.j().m&&a.j().m.featuresPlaybackRate&&a.j().options().playbackRates&&0<a.j().options().playbackRates.length}s.Qc=function(){U(this)?this.p("vjs-hidden"):this.n("vjs-hidden")};
|
||||
s.Pc=function(){U(this)&&(this.xc.innerHTML=this.j().playbackRate()+"x")};t.nb=t.H.extend({kc:"button",i:function(a,c){var d=this.label=c.rate,e=this.Ec=parseFloat(d,10);c.label=d;c.selected=1===e;t.H.call(this,a,c);this.j().d("ratechange",t.bind(this,this.update))}});t.nb.prototype.r=function(){t.H.prototype.r.call(this);this.j().playbackRate(this.Ec)};t.nb.prototype.update=function(){this.selected(this.j().playbackRate()==this.Ec)};
|
||||
t.Ka=t.t.extend({i:function(a,c){t.t.call(this,a,c);a.poster()&&this.src(a.poster());(!a.poster()||!a.controls())&&this.V();a.d("posterchange",t.bind(this,function(){this.src(a.poster())}));a.d("play",t.bind(this,this.V))}});var ea="backgroundSize"in t.A.style;t.Ka.prototype.e=function(){var a=t.e("div",{className:"vjs-poster",tabIndex:-1});ea||a.appendChild(t.e("img"));return a};t.Ka.prototype.src=function(a){var c=this.v();a!==b&&(ea?c.style.backgroundImage='url("'+a+'")':c.firstChild.src=a)};
|
||||
t.Ka.prototype.r=function(){this.j().controls()&&this.c.play()};t.Yb=t.a.extend({i:function(a,c){t.a.call(this,a,c)}});t.Yb.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-loading-spinner"})};t.fb=t.t.extend();t.fb.prototype.e=function(){return t.t.prototype.e.call(this,"div",{className:"vjs-big-play-button",innerHTML:'<span aria-hidden="true"></span>',"aria-label":"play video"})};t.fb.prototype.r=function(){this.c.play()};
|
||||
t.jb=t.a.extend({i:function(a,c){t.a.call(this,a,c);this.update();a.d("error",t.bind(this,this.update))}});t.jb.prototype.e=function(){var a=t.a.prototype.e.call(this,"div",{className:"vjs-error-display"});this.u=t.e("div");a.appendChild(this.u);return a};t.jb.prototype.update=function(){this.j().error()&&(this.u.innerHTML=this.s(this.j().error().message))};
|
||||
t.q=t.a.extend({i:function(a,c,d){c=c||{};c.Gc=l;t.a.call(this,a,c,d);this.featuresProgressEvents||(this.yc=f,this.Dc=setInterval(t.bind(this,function(){var a=this.j().bufferedPercent();this.hd!=a&&this.j().l("progress");this.hd=a;1===a&&clearInterval(this.Dc)}),500));this.featuresTimeupdateEvents||(this.Kb=f,this.j().d("play",t.bind(this,this.Oc)),this.j().d("pause",t.bind(this,this.cb)),this.W("timeupdate",function(){this.featuresTimeupdateEvents=f;fa(this)}));var e,g;g=this;e=this.j();a=function(){if(e.controls()&&
|
||||
!e.usingNativeControls()){var a;g.d("mousedown",g.r);g.d("touchstart",function(){a=this.c.userActive()});g.d("touchmove",function(){a&&this.j().reportUserActivity()});g.d("touchend",function(a){a.preventDefault()});G(g);g.d("tap",g.Qd)}};c=t.bind(g,g.Wd);this.I(a);e.d("controlsenabled",a);e.d("controlsdisabled",c);this.I(function(){this.networkState&&0<this.networkState()&&this.j().l("loadstart")})}});s=t.q.prototype;
|
||||
s.Wd=function(){this.o("tap");this.o("touchstart");this.o("touchmove");this.o("touchleave");this.o("touchcancel");this.o("touchend");this.o("click");this.o("mousedown")};s.r=function(a){0===a.button&&this.j().controls()&&(this.j().paused()?this.j().play():this.j().pause())};s.Qd=function(){this.j().userActive(!this.j().userActive())};function fa(a){a.Kb=l;a.cb();a.o("play",a.Oc);a.o("pause",a.cb)}
|
||||
s.Oc=function(){this.lc&&this.cb();this.lc=setInterval(t.bind(this,function(){this.j().l("timeupdate")}),250)};s.cb=function(){clearInterval(this.lc);this.j().l("timeupdate")};s.dispose=function(){this.yc&&(this.yc=l,clearInterval(this.Dc));this.Kb&&fa(this);t.a.prototype.dispose.call(this)};s.Pb=function(){this.Kb&&this.j().l("timeupdate")};s.Ic=m();t.q.prototype.featuresVolumeControl=f;t.q.prototype.featuresFullscreenResize=l;t.q.prototype.featuresPlaybackRate=l;
|
||||
t.q.prototype.featuresProgressEvents=l;t.q.prototype.featuresTimeupdateEvents=l;t.media={};
|
||||
t.g=t.q.extend({i:function(a,c,d){this.featuresVolumeControl=t.g.kd();this.featuresPlaybackRate=t.g.jd();this.movingMediaElementInDOM=!t.Wc;this.featuresProgressEvents=this.featuresFullscreenResize=f;t.q.call(this,a,c,d);for(d=t.g.kb.length-1;0<=d;d--)t.d(this.b,t.g.kb[d],t.bind(this,this.td));if((c=c.source)&&this.b.currentSrc!==c.src)this.b.src=c.src;if(t.dc&&a.options().nativeControlsForTouch!==l){var e,g,h,j;e=this;g=this.j();c=g.controls();e.b.controls=!!c;h=function(){e.b.controls=f};j=function(){e.b.controls=
|
||||
l};g.d("controlsenabled",h);g.d("controlsdisabled",j);c=function(){g.o("controlsenabled",h);g.o("controlsdisabled",j)};e.d("dispose",c);g.d("usingcustomcontrols",c);g.usingNativeControls(f)}a.I(function(){this.O&&(this.k.autoplay&&this.paused())&&(delete this.O.poster,this.play())});this.Fa()}});s=t.g.prototype;s.dispose=function(){t.g.Bb(this.b);t.q.prototype.dispose.call(this)};
|
||||
s.e=function(){var a=this.c,c=a.O,d;if(!c||this.movingMediaElementInDOM===l)c?(d=c.cloneNode(l),t.g.Bb(c),c=d,a.O=k):(c=t.e("video"),t.Hc(c,t.h.z(a.fe||{},{id:a.id()+"_html5_api","class":"vjs-tech"}))),c.player=a,t.Gb(c,a.v());d=["autoplay","preload","loop","muted"];for(var e=d.length-1;0<=e;e--){var g=d[e],h={};"undefined"!==typeof a.k[g]&&(h[g]=a.k[g]);t.Hc(c,h)}return c};s.td=function(a){"error"==a.type?this.j().error(this.error().code):(a.bubbles=l,this.j().l(a))};s.play=function(){this.b.play()};
|
||||
s.pause=function(){this.b.pause()};s.paused=function(){return this.b.paused};s.currentTime=function(){return this.b.currentTime};s.Pb=function(a){try{this.b.currentTime=a}catch(c){t.log(c,"Video is not ready. (Video.js)")}};s.duration=function(){return this.b.duration||0};s.buffered=function(){return this.b.buffered};s.volume=function(){return this.b.volume};s.ce=function(a){this.b.volume=a};s.muted=function(){return this.b.muted};s.$d=function(a){this.b.muted=a};s.width=function(){return this.b.offsetWidth};
|
||||
s.height=function(){return this.b.offsetHeight};s.Da=function(){return"function"==typeof this.b.webkitEnterFullScreen&&(/Android/.test(t.L)||!/Chrome|Mac OS X 10.5/.test(t.L))?f:l};s.nc=function(){var a=this.b;a.paused&&a.networkState<=a.ke?(this.b.play(),setTimeout(function(){a.pause();a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()};s.ud=function(){this.b.webkitExitFullScreen()};s.src=function(a){if(a===b)return this.b.src;this.b.src=a};s.load=function(){this.b.load()};s.currentSrc=function(){return this.b.currentSrc};
|
||||
s.poster=function(){return this.b.poster};s.Ic=function(a){this.b.poster=a};s.Ca=function(){return this.b.Ca};s.be=function(a){this.b.Ca=a};s.autoplay=function(){return this.b.autoplay};s.Xd=function(a){this.b.autoplay=a};s.controls=function(){return this.b.controls};s.loop=function(){return this.b.loop};s.Zd=function(a){this.b.loop=a};s.error=function(){return this.b.error};s.seeking=function(){return this.b.seeking};s.ended=function(){return this.b.ended};s.playbackRate=function(){return this.b.playbackRate};
|
||||
s.ae=function(a){this.b.playbackRate=a};s.networkState=function(){return this.b.networkState};t.g.isSupported=function(){try{t.A.volume=0.5}catch(a){return l}return!!t.A.canPlayType};t.g.vb=function(a){try{return!!t.A.canPlayType(a.type)}catch(c){return""}};t.g.kd=function(){var a=t.A.volume;t.A.volume=a/2+0.1;return a!==t.A.volume};t.g.jd=function(){var a=t.A.playbackRate;t.A.playbackRate=a/2+0.1;return a!==t.A.playbackRate};var V,ga=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,ha=/^video\/mp4/i;
|
||||
t.g.Ac=function(){4<=t.Tb&&(V||(V=t.A.constructor.prototype.canPlayType),t.A.constructor.prototype.canPlayType=function(a){return a&&ga.test(a)?"maybe":V.call(this,a)});t.$c&&(V||(V=t.A.constructor.prototype.canPlayType),t.A.constructor.prototype.canPlayType=function(a){return a&&ha.test(a)?"maybe":V.call(this,a)})};t.g.ie=function(){var a=t.A.constructor.prototype.canPlayType;t.A.constructor.prototype.canPlayType=V;V=k;return a};t.g.Ac();t.g.kb="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");
|
||||
t.g.Bb=function(a){if(a){a.player=k;for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src");if("function"===typeof a.load)try{a.load()}catch(c){}}};
|
||||
t.f=t.u.extend({i:function(a,c,d){t.u.call(this,a,c,d);var e=c.source;d=c.parentEl;var g=this.b=t.e("div",{id:a.id()+"_temp_flash"}),h=a.id()+"_flash_api",j=a.l,j=t.h.A({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:j.autoplay,preload:j.Da,loop:j.loop,muted:j.muted},c.flashVars),n=t.h.A({wmode:"opaque",bgcolor:"#000000"},c.params),h=t.h.A({id:h,name:h,"class":"vjs-tech"},c.attributes);e&&(e.type&&t.f.Dd(e.type)?
|
||||
(e=t.f.Nc(e.src),j.rtmpConnection=encodeURIComponent(e.wb),j.rtmpStream=encodeURIComponent(e.Rb)):j.src=encodeURIComponent(t.sc(e.src)));t.Gb(g,d);c.startTime&&this.J(function(){this.load();this.play();this.currentTime(c.startTime)});t.Xc&&this.J(function(){t.d(this.w(),"mousemove",t.bind(this,function(){this.j().m({type:"mousemove",bubbles:l})}))});a.d("stageclick",a.reportUserActivity);this.b=t.f.td(c.swf,g,j,n,h)}});t.f.prototype.dispose=function(){t.u.prototype.dispose.call(this)};
|
||||
t.f.prototype.play=function(){this.b.vjs_play()};t.f.prototype.pause=function(){this.b.vjs_pause()};t.f.prototype.src=function(a){if(a===b)return this.currentSrc();t.f.Cd(a)?(a=t.f.Nc(a),this.re(a.wb),this.se(a.Rb)):(a=t.sc(a),this.b.vjs_src(a));if(this.c.autoplay()){var c=this;setTimeout(function(){c.play()},0)}};t.f.prototype.setCurrentTime=function(a){this.Gd=a;this.b.vjs_setProperty("currentTime",a);t.u.prototype.Qb.call(this)};
|
||||
t.f=t.q.extend({i:function(a,c,d){t.q.call(this,a,c,d);var e=c.source;d=c.parentEl;var g=this.b=t.e("div",{id:a.id()+"_temp_flash"}),h=a.id()+"_flash_api",j=a.k,j=t.h.z({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:j.autoplay,preload:j.Ca,loop:j.loop,muted:j.muted},c.flashVars),n=t.h.z({wmode:"opaque",bgcolor:"#000000"},c.params),h=t.h.z({id:h,name:h,"class":"vjs-tech"},c.attributes);e&&(e.type&&t.f.Dd(e.type)?
|
||||
(e=t.f.Mc(e.src),j.rtmpConnection=encodeURIComponent(e.wb),j.rtmpStream=encodeURIComponent(e.Qb)):j.src=encodeURIComponent(t.rc(e.src)));t.Gb(g,d);c.startTime&&this.I(function(){this.load();this.play();this.currentTime(c.startTime)});t.Vc&&this.I(function(){t.d(this.v(),"mousemove",t.bind(this,function(){this.j().l({type:"mousemove",bubbles:l})}))});a.d("stageclick",a.reportUserActivity);this.b=t.f.sd(c.swf,g,j,n,h)}});t.f.prototype.dispose=function(){t.q.prototype.dispose.call(this)};
|
||||
t.f.prototype.play=function(){this.b.vjs_play()};t.f.prototype.pause=function(){this.b.vjs_pause()};t.f.prototype.src=function(a){if(a===b)return this.currentSrc();t.f.Cd(a)?(a=t.f.Mc(a),this.ue(a.wb),this.ve(a.Qb)):(a=t.rc(a),this.b.vjs_src(a));if(this.c.autoplay()){var c=this;setTimeout(function(){c.play()},0)}};t.f.prototype.setCurrentTime=function(a){this.Gd=a;this.b.vjs_setProperty("currentTime",a);t.q.prototype.Pb.call(this)};
|
||||
t.f.prototype.currentTime=function(){return this.seeking()?this.Gd||0:this.b.vjs_getProperty("currentTime")};t.f.prototype.currentSrc=function(){var a=this.b.vjs_getProperty("currentSrc");if(a==k){var c=this.rtmpConnection(),d=this.rtmpStream();c&&d&&(a=t.f.de(c,d))}return a};t.f.prototype.load=function(){this.b.vjs_load()};t.f.prototype.poster=function(){this.b.vjs_getProperty("poster")};t.f.prototype.setPoster=m();t.f.prototype.buffered=function(){return t.zb(0,this.b.vjs_getProperty("buffered"))};
|
||||
t.f.prototype.Ea=r(l);t.f.prototype.oc=r(l);function ia(){var a=W[X],c=a.charAt(0).toUpperCase()+a.slice(1);ja["set"+c]=function(c){return this.b.vjs_setProperty(a,c)}}function ka(a){ja[a]=function(){return this.b.vjs_getProperty(a)}}
|
||||
t.f.prototype.Da=r(l);t.f.prototype.nc=r(l);function ia(){var a=W[X],c=a.charAt(0).toUpperCase()+a.slice(1);ja["set"+c]=function(c){return this.b.vjs_setProperty(a,c)}}function ka(a){ja[a]=function(){return this.b.vjs_getProperty(a)}}
|
||||
var ja=t.f.prototype,W="rtmpConnection rtmpStream preload defaultPlaybackRate playbackRate autoplay loop mediaGroup controller controls volume muted defaultMuted".split(" "),la="error networkState readyState seeking initialTime duration startOffsetTime paused played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks".split(" "),X;for(X=0;X<W.length;X++)ka(W[X]),ia();for(X=0;X<la.length;X++)ka(la[X]);t.f.isSupported=function(){return 10<=t.f.version()[0]};
|
||||
t.f.vb=function(a){if(!a.type)return"";a=a.type.replace(/;.*/,"").toLowerCase();if(a in t.f.xd||a in t.f.Oc)return"maybe"};t.f.xd={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"};t.f.Oc={"rtmp/mp4":"MP4","rtmp/flv":"FLV"};t.f.onReady=function(a){var c;if(c=(a=t.w(a))&&a.parentNode&&a.parentNode.player)a.player=c,t.f.checkReady(c.k)};t.f.checkReady=function(a){a.w()&&(a.w().vjs_getProperty?a.Ga():setTimeout(function(){t.f.checkReady(a)},50))};t.f.onEvent=function(a,c){t.w(a).player.m(c)};
|
||||
t.f.onError=function(a,c){var d=t.w(a).player,e="FLASH: "+c;"srcnotfound"==c?d.error({code:4,message:e}):d.error(e)};t.f.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(",")};
|
||||
t.f.td=function(a,c,d,e,g){a=t.f.zd(a,d,e,g);a=t.e("div",{innerHTML:a}).childNodes[0];d=c.parentNode;c.parentNode.replaceChild(a,c);var h=d.childNodes[0];setTimeout(function(){h.style.display="block"},1E3);return a};
|
||||
t.f.zd=function(a,c,d,e){var g="",h="",j="";c&&t.h.Z(c,function(a,c){g+=a+"="+c+"&"});d=t.h.A({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);t.h.Z(d,function(a,c){h+='<param name="'+a+'" value="'+c+'" />'});e=t.h.A({data:a,width:"100%",height:"100%"},e);t.h.Z(e,function(a,c){j+=a+'="'+c+'" '});return'<object type="application/x-shockwave-flash"'+j+">"+h+"</object>"};t.f.de=function(a,c){return a+"&"+c};
|
||||
t.f.Nc=function(a){var c={wb:"",Rb:""};if(!a)return c;var d=a.indexOf("&"),e;-1!==d?e=d+1:(d=e=a.lastIndexOf("/")+1,0===d&&(d=e=a.length));c.wb=a.substring(0,d);c.Rb=a.substring(e,a.length);return c};t.f.Dd=function(a){return a in t.f.Oc};t.f.dd=/^rtmp[set]?:\/\//i;t.f.Cd=function(a){return t.f.dd.test(a)};
|
||||
t.cd=t.a.extend({i:function(a,c,d){t.a.call(this,a,c,d);if(!a.l.sources||0===a.l.sources.length){c=0;for(d=a.l.techOrder;c<d.length;c++){var e=t.ba(d[c]),g=window.videojs[e];if(g&&g.isSupported()){P(a,e);break}}}else a.src(a.l.sources)}});t.Player.prototype.textTracks=function(){return this.Fa=this.Fa||[]};
|
||||
function ma(a,c,d,e,g){var h=a.Fa=a.Fa||[];g=g||{};g.kind=c;g.label=d;g.language=e;c=t.ba(c||"subtitles");var j=new window.videojs[c+"Track"](a,g);h.push(j);j.Ab()&&a.J(function(){setTimeout(function(){Y(j.j(),j.id())},0)})}function Y(a,c,d){for(var e=a.Fa,g=0,h=e.length,j,n;g<h;g++)j=e[g],j.id()===c?(j.show(),n=j):d&&(j.K()==d&&0<j.mode())&&j.disable();(c=n?n.K():d?d:l)&&a.m(c+"trackchange")}
|
||||
t.C=t.a.extend({i:function(a,c){t.a.call(this,a,c);this.U=c.id||"vjs_"+c.kind+"_"+c.language+"_"+t.z++;this.Kc=c.src;this.qd=c["default"]||c.dflt;this.ge=c.title;this.Ua=c.srclang;this.Ed=c.label;this.ca=[];this.tb=[];this.ma=this.na=0;this.c.d("fullscreenchange",t.bind(this,this.fd))}});s=t.C.prototype;s.K=p("H");s.src=p("Kc");s.Ab=p("qd");s.title=p("ge");s.language=p("Ua");s.label=p("Ed");s.md=p("ca");s.ed=p("tb");s.readyState=p("na");s.mode=p("ma");
|
||||
s.fd=function(){this.b.style.fontSize=this.c.isFullScreen()?140*(screen.width/this.c.width())+"%":""};s.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-"+this.H+" vjs-text-track"})};s.show=function(){na(this);this.ma=2;t.a.prototype.show.call(this)};s.W=function(){na(this);this.ma=1;t.a.prototype.W.call(this)};
|
||||
s.disable=function(){2==this.ma&&this.W();this.c.p("timeupdate",t.bind(this,this.update,this.U));this.c.p("ended",t.bind(this,this.reset,this.U));this.reset();this.c.ka("textTrackDisplay").removeChild(this);this.ma=0};function na(a){0===a.na&&a.load();0===a.ma&&(a.c.d("timeupdate",t.bind(a,a.update,a.U)),a.c.d("ended",t.bind(a,a.reset,a.U)),("captions"===a.H||"subtitles"===a.H)&&a.c.ka("textTrackDisplay").R(a))}
|
||||
s.load=function(){0===this.na&&(this.na=1,t.get(this.Kc,t.bind(this,this.Td),t.bind(this,this.Jd)))};s.Jd=function(a){this.error=a;this.na=3;this.m("error")};s.Td=function(a){var c,d;a=a.split("\n");for(var e="",g=1,h=a.length;g<h;g++)if(e=t.trim(a[g])){-1==e.indexOf("--\x3e")?(c=e,e=t.trim(a[++g])):c=this.ca.length;c={id:c,index:this.ca.length};d=e.split(/[\t ]+/);c.startTime=oa(d[0]);c.ya=oa(d[2]);for(d=[];a[++g]&&(e=t.trim(a[g]));)d.push(e);c.text=d.join("<br/>");this.ca.push(c)}this.na=2;this.m("loaded")};
|
||||
t.f.vb=function(a){if(!a.type)return"";a=a.type.replace(/;.*/,"").toLowerCase();if(a in t.f.wd||a in t.f.Nc)return"maybe"};t.f.wd={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"};t.f.Nc={"rtmp/mp4":"MP4","rtmp/flv":"FLV"};t.f.onReady=function(a){var c;if(c=(a=t.v(a))&&a.parentNode&&a.parentNode.player)a.player=c,t.f.checkReady(c.m)};t.f.checkReady=function(a){a.v()&&(a.v().vjs_getProperty?a.Fa():setTimeout(function(){t.f.checkReady(a)},50))};t.f.onEvent=function(a,c){t.v(a).player.l(c)};
|
||||
t.f.onError=function(a,c){var d=t.v(a).player,e="FLASH: "+c;"srcnotfound"==c?d.error({code:4,message:e}):d.error(e)};t.f.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(",")};
|
||||
t.f.sd=function(a,c,d,e,g){a=t.f.yd(a,d,e,g);a=t.e("div",{innerHTML:a}).childNodes[0];d=c.parentNode;c.parentNode.replaceChild(a,c);var h=d.childNodes[0];setTimeout(function(){h.style.display="block"},1E3);return a};
|
||||
t.f.yd=function(a,c,d,e){var g="",h="",j="";c&&t.h.Y(c,function(a,c){g+=a+"="+c+"&"});d=t.h.z({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);t.h.Y(d,function(a,c){h+='<param name="'+a+'" value="'+c+'" />'});e=t.h.z({data:a,width:"100%",height:"100%"},e);t.h.Y(e,function(a,c){j+=a+'="'+c+'" '});return'<object type="application/x-shockwave-flash"'+j+">"+h+"</object>"};t.f.de=function(a,c){return a+"&"+c};
|
||||
t.f.Mc=function(a){var c={wb:"",Qb:""};if(!a)return c;var d=a.indexOf("&"),e;-1!==d?e=d+1:(d=e=a.lastIndexOf("/")+1,0===d&&(d=e=a.length));c.wb=a.substring(0,d);c.Qb=a.substring(e,a.length);return c};t.f.Dd=function(a){return a in t.f.Nc};t.f.bd=/^rtmp[set]?:\/\//i;t.f.Cd=function(a){return t.f.bd.test(a)};
|
||||
t.ad=t.a.extend({i:function(a,c,d){t.a.call(this,a,c,d);if(!a.k.sources||0===a.k.sources.length){c=0;for(d=a.k.techOrder;c<d.length;c++){var e=t.aa(d[c]),g=window.videojs[e];if(g&&g.isSupported()){P(a,e);break}}}else a.src(a.k.sources)}});t.Player.prototype.textTracks=function(){return this.Ea=this.Ea||[]};
|
||||
function ma(a,c,d,e,g){var h=a.Ea=a.Ea||[];g=g||{};g.kind=c;g.label=d;g.language=e;c=t.aa(c||"subtitles");var j=new window.videojs[c+"Track"](a,g);h.push(j);j.Ab()&&a.I(function(){setTimeout(function(){Y(j.j(),j.id())},0)})}function Y(a,c,d){for(var e=a.Ea,g=0,h=e.length,j,n;g<h;g++)j=e[g],j.id()===c?(j.show(),n=j):d&&(j.J()==d&&0<j.mode())&&j.disable();(c=n?n.J():d?d:l)&&a.l(c+"trackchange")}
|
||||
t.B=t.a.extend({i:function(a,c){t.a.call(this,a,c);this.T=c.id||"vjs_"+c.kind+"_"+c.language+"_"+t.w++;this.Jc=c.src;this.pd=c["default"]||c.dflt;this.ge=c.title;this.Ta=c.srclang;this.Ed=c.label;this.ba=[];this.tb=[];this.ma=this.na=0;this.c.d("fullscreenchange",t.bind(this,this.ed))}});s=t.B.prototype;s.J=p("G");s.src=p("Jc");s.Ab=p("pd");s.title=p("ge");s.language=p("Ta");s.label=p("Ed");s.ld=p("ba");s.cd=p("tb");s.readyState=p("na");s.mode=p("ma");
|
||||
s.ed=function(){this.b.style.fontSize=this.c.isFullScreen()?140*(screen.width/this.c.width())+"%":""};s.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-"+this.G+" vjs-text-track"})};s.show=function(){na(this);this.ma=2;t.a.prototype.show.call(this)};s.V=function(){na(this);this.ma=1;t.a.prototype.V.call(this)};
|
||||
s.disable=function(){2==this.ma&&this.V();this.c.o("timeupdate",t.bind(this,this.update,this.T));this.c.o("ended",t.bind(this,this.reset,this.T));this.reset();this.c.ka("textTrackDisplay").removeChild(this);this.ma=0};function na(a){0===a.na&&a.load();0===a.ma&&(a.c.d("timeupdate",t.bind(a,a.update,a.T)),a.c.d("ended",t.bind(a,a.reset,a.T)),("captions"===a.G||"subtitles"===a.G)&&a.c.ka("textTrackDisplay").Q(a))}
|
||||
s.load=function(){0===this.na&&(this.na=1,t.get(this.Jc,t.bind(this,this.Td),t.bind(this,this.Jd)))};s.Jd=function(a){this.error=a;this.na=3;this.l("error")};s.Td=function(a){var c,d;a=a.split("\n");for(var e="",g=1,h=a.length;g<h;g++)if(e=t.trim(a[g])){-1==e.indexOf("--\x3e")?(c=e,e=t.trim(a[++g])):c=this.ba.length;c={id:c,index:this.ba.length};d=e.split(/[\t ]+/);c.startTime=oa(d[0]);c.xa=oa(d[2]);for(d=[];a[++g]&&(e=t.trim(a[g]));)d.push(e);c.text=d.join("<br/>");this.ba.push(c)}this.na=2;this.l("loaded")};
|
||||
function oa(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}
|
||||
s.update=function(){if(0<this.ca.length){var a=this.c.options().trackTimeOffset||0,a=this.c.currentTime()+a;if(this.Pb===b||a<this.Pb||this.Wa<=a){var c=this.ca,d=this.c.duration(),e=0,g=l,h=[],j,n,q,w;a>=this.Wa||this.Wa===b?w=this.Db!==b?this.Db:0:(g=f,w=this.Jb!==b?this.Jb:c.length-1);for(;;){q=c[w];if(q.ya<=a)e=Math.max(e,q.ya),q.Oa&&(q.Oa=l);else if(a<q.startTime){if(d=Math.min(d,q.startTime),q.Oa&&(q.Oa=l),!g)break}else g?(h.splice(0,0,q),n===b&&(n=w),j=w):(h.push(q),j===b&&(j=w),n=w),d=Math.min(d,
|
||||
q.ya),e=Math.max(e,q.startTime),q.Oa=f;if(g)if(0===w)break;else w--;else if(w===c.length-1)break;else w++}this.tb=h;this.Wa=d;this.Pb=e;this.Db=j;this.Jb=n;j=this.tb;n="";a=0;for(c=j.length;a<c;a++)n+='<span class="vjs-tt-cue">'+j[a].text+"</span>";this.b.innerHTML=n;this.m("cuechange")}}};s.reset=function(){this.Wa=0;this.Pb=this.c.duration();this.Jb=this.Db=0};t.Wb=t.C.extend();t.Wb.prototype.H="captions";t.dc=t.C.extend();t.dc.prototype.H="subtitles";t.Xb=t.C.extend();t.Xb.prototype.H="chapters";
|
||||
t.fc=t.a.extend({i:function(a,c,d){t.a.call(this,a,c,d);if(a.l.tracks&&0<a.l.tracks.length){c=this.c;a=a.l.tracks;for(var e=0;e<a.length;e++)d=a[e],ma(c,d.kind,d.label,d.language,d)}}});t.fc.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-text-track-display"})};t.aa=t.I.extend({i:function(a,c){var d=this.fa=c.track;c.label=d.label();c.selected=d.Ab();t.I.call(this,a,c);this.c.d(d.K()+"trackchange",t.bind(this,this.update))}});
|
||||
t.aa.prototype.r=function(){t.I.prototype.r.call(this);Y(this.c,this.fa.U,this.fa.K())};t.aa.prototype.update=function(){this.selected(2==this.fa.mode())};t.mb=t.aa.extend({i:function(a,c){c.track={K:function(){return c.kind},j:a,label:function(){return c.kind+" off"},Ab:r(l),mode:r(l)};t.aa.call(this,a,c);this.selected(f)}});t.mb.prototype.r=function(){t.aa.prototype.r.call(this);Y(this.c,this.fa.U,this.fa.K())};
|
||||
t.mb.prototype.update=function(){for(var a=this.c.textTracks(),c=0,d=a.length,e,g=f;c<d;c++)e=a[c],e.K()==this.fa.K()&&2==e.mode()&&(g=l);this.selected(g)};t.V=t.L.extend({i:function(a,c){t.L.call(this,a,c);1>=this.O.length&&this.W()}});t.V.prototype.wa=function(){var a=[],c;a.push(new t.mb(this.c,{kind:this.H}));for(var d=0;d<this.c.textTracks().length;d++)c=this.c.textTracks()[d],c.K()===this.H&&a.push(new t.aa(this.c,{track:c}));return a};
|
||||
t.Ha=t.V.extend({i:function(a,c,d){t.V.call(this,a,c,d);this.b.setAttribute("aria-label","Captions Menu")}});t.Ha.prototype.H="captions";t.Ha.prototype.ua="Captions";t.Ha.prototype.className="vjs-captions-button";t.Na=t.V.extend({i:function(a,c,d){t.V.call(this,a,c,d);this.b.setAttribute("aria-label","Subtitles Menu")}});t.Na.prototype.H="subtitles";t.Na.prototype.ua="Subtitles";t.Na.prototype.className="vjs-subtitles-button";
|
||||
t.Ia=t.V.extend({i:function(a,c,d){t.V.call(this,a,c,d);this.b.setAttribute("aria-label","Chapters Menu")}});s=t.Ia.prototype;s.H="chapters";s.ua="Chapters";s.className="vjs-chapters-button";s.wa=function(){for(var a=[],c,d=0;d<this.c.textTracks().length;d++)c=this.c.textTracks()[d],c.K()===this.H&&a.push(new t.aa(this.c,{track:c}));return a};
|
||||
s.xa=function(){for(var a=this.c.textTracks(),c=0,d=a.length,e,g,h=this.O=[];c<d;c++)if(e=a[c],e.K()==this.H)if(0===e.readyState())e.load(),e.d("loaded",t.bind(this,this.xa));else{g=e;break}a=this.Ba;a===b&&(a=new t.ha(this.c),a.ja().appendChild(t.e("li",{className:"vjs-menu-title",innerHTML:t.ba(this.H),ee:-1})));if(g){e=g.ca;for(var j,c=0,d=e.length;c<d;c++)j=e[c],j=new t.gb(this.c,{track:g,cue:j}),h.push(j),a.R(j);this.R(a)}0<this.O.length&&this.show();return a};
|
||||
t.gb=t.I.extend({i:function(a,c){var d=this.fa=c.track,e=this.cue=c.cue,g=a.currentTime();c.label=e.text;c.selected=e.startTime<=g&&g<e.ya;t.I.call(this,a,c);d.d("cuechange",t.bind(this,this.update))}});t.gb.prototype.r=function(){t.I.prototype.r.call(this);this.c.currentTime(this.cue.startTime);this.update(this.cue.startTime)};t.gb.prototype.update=function(){var a=this.cue,c=this.c.currentTime();this.selected(a.startTime<=c&&c<a.ya)};
|
||||
t.h.A(t.Ja.prototype.l.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});
|
||||
s.update=function(){if(0<this.ba.length){var a=this.c.options().trackTimeOffset||0,a=this.c.currentTime()+a;if(this.Ob===b||a<this.Ob||this.Wa<=a){var c=this.ba,d=this.c.duration(),e=0,g=l,h=[],j,n,q,w;a>=this.Wa||this.Wa===b?w=this.Db!==b?this.Db:0:(g=f,w=this.Jb!==b?this.Jb:c.length-1);for(;;){q=c[w];if(q.xa<=a)e=Math.max(e,q.xa),q.Na&&(q.Na=l);else if(a<q.startTime){if(d=Math.min(d,q.startTime),q.Na&&(q.Na=l),!g)break}else g?(h.splice(0,0,q),n===b&&(n=w),j=w):(h.push(q),j===b&&(j=w),n=w),d=Math.min(d,
|
||||
q.xa),e=Math.max(e,q.startTime),q.Na=f;if(g)if(0===w)break;else w--;else if(w===c.length-1)break;else w++}this.tb=h;this.Wa=d;this.Ob=e;this.Db=j;this.Jb=n;j=this.tb;n="";a=0;for(c=j.length;a<c;a++)n+='<span class="vjs-tt-cue">'+j[a].text+"</span>";this.b.innerHTML=n;this.l("cuechange")}}};s.reset=function(){this.Wa=0;this.Ob=this.c.duration();this.Jb=this.Db=0};t.Vb=t.B.extend();t.Vb.prototype.G="captions";t.cc=t.B.extend();t.cc.prototype.G="subtitles";t.Wb=t.B.extend();t.Wb.prototype.G="chapters";
|
||||
t.ec=t.a.extend({i:function(a,c,d){t.a.call(this,a,c,d);if(a.k.tracks&&0<a.k.tracks.length){c=this.c;a=a.k.tracks;for(var e=0;e<a.length;e++)d=a[e],ma(c,d.kind,d.label,d.language,d)}}});t.ec.prototype.e=function(){return t.a.prototype.e.call(this,"div",{className:"vjs-text-track-display"})};t.$=t.H.extend({i:function(a,c){var d=this.ea=c.track;c.label=d.label();c.selected=d.Ab();t.H.call(this,a,c);this.c.d(d.J()+"trackchange",t.bind(this,this.update))}});
|
||||
t.$.prototype.r=function(){t.H.prototype.r.call(this);Y(this.c,this.ea.T,this.ea.J())};t.$.prototype.update=function(){this.selected(2==this.ea.mode())};t.mb=t.$.extend({i:function(a,c){c.track={J:function(){return c.kind},j:a,label:function(){return c.kind+" off"},Ab:r(l),mode:r(l)};t.$.call(this,a,c);this.selected(f)}});t.mb.prototype.r=function(){t.$.prototype.r.call(this);Y(this.c,this.ea.T,this.ea.J())};
|
||||
t.mb.prototype.update=function(){for(var a=this.c.textTracks(),c=0,d=a.length,e,g=f;c<d;c++)e=a[c],e.J()==this.ea.J()&&2==e.mode()&&(g=l);this.selected(g)};t.U=t.K.extend({i:function(a,c){t.K.call(this,a,c);1>=this.N.length&&this.V()}});t.U.prototype.va=function(){var a=[],c;a.push(new t.mb(this.c,{kind:this.G}));for(var d=0;d<this.c.textTracks().length;d++)c=this.c.textTracks()[d],c.J()===this.G&&a.push(new t.$(this.c,{track:c}));return a};
|
||||
t.Ga=t.U.extend({i:function(a,c,d){t.U.call(this,a,c,d);this.b.setAttribute("aria-label","Captions Menu")}});t.Ga.prototype.G="captions";t.Ga.prototype.ta="Captions";t.Ga.prototype.className="vjs-captions-button";t.Ma=t.U.extend({i:function(a,c,d){t.U.call(this,a,c,d);this.b.setAttribute("aria-label","Subtitles Menu")}});t.Ma.prototype.G="subtitles";t.Ma.prototype.ta="Subtitles";t.Ma.prototype.className="vjs-subtitles-button";
|
||||
t.Ha=t.U.extend({i:function(a,c,d){t.U.call(this,a,c,d);this.b.setAttribute("aria-label","Chapters Menu")}});s=t.Ha.prototype;s.G="chapters";s.ta="Chapters";s.className="vjs-chapters-button";s.va=function(){for(var a=[],c,d=0;d<this.c.textTracks().length;d++)c=this.c.textTracks()[d],c.J()===this.G&&a.push(new t.$(this.c,{track:c}));return a};
|
||||
s.wa=function(){for(var a=this.c.textTracks(),c=0,d=a.length,e,g,h=this.N=[];c<d;c++)if(e=a[c],e.J()==this.G)if(0===e.readyState())e.load(),e.d("loaded",t.bind(this,this.wa));else{g=e;break}a=this.Aa;a===b&&(a=new t.ha(this.c),a.ja().appendChild(t.e("li",{className:"vjs-menu-title",innerHTML:t.aa(this.G),ee:-1})));if(g){e=g.ba;for(var j,c=0,d=e.length;c<d;c++)j=e[c],j=new t.gb(this.c,{track:g,cue:j}),h.push(j),a.Q(j);this.Q(a)}0<this.N.length&&this.show();return a};
|
||||
t.gb=t.H.extend({i:function(a,c){var d=this.ea=c.track,e=this.cue=c.cue,g=a.currentTime();c.label=e.text;c.selected=e.startTime<=g&&g<e.xa;t.H.call(this,a,c);d.d("cuechange",t.bind(this,this.update))}});t.gb.prototype.r=function(){t.H.prototype.r.call(this);this.c.currentTime(this.cue.startTime);this.update(this.cue.startTime)};t.gb.prototype.update=function(){var a=this.cue,c=this.c.currentTime();this.selected(a.startTime<=c&&c<a.xa)};
|
||||
t.h.z(t.Ia.prototype.k.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});
|
||||
if("undefined"!==typeof window.JSON&&"function"===window.JSON.parse)t.JSON=window.JSON;else{t.JSON={};var Z=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;t.JSON.parse=function(a,c){function d(a,e){var j,n,q=a[e];if(q&&"object"===typeof q)for(j in q)Object.prototype.hasOwnProperty.call(q,j)&&(n=d(q,j),n!==b?q[j]=n:delete q[j]);return c.call(a,e,q)}var e;a=String(a);Z.lastIndex=0;Z.test(a)&&(a=a.replace(Z,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
|
||||
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");}}
|
||||
t.jc=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!==k&&(a=t.JSON.parse(a||"{}"),videojs(c,a)));else{t.ub();break}else t.Tc||t.ub()};t.ub=function(){setTimeout(t.jc,1)};"complete"===document.readyState?t.Tc=f:t.X(window,"load",function(){t.Tc=f});t.ub();t.Vd=function(a,c){t.Player.prototype[a]=c};var pa=this;function $(a,c){var d=a.split("."),e=pa;!(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",t);$("_V_",t);$("videojs.options",t.options);$("videojs.players",t.Ca);$("videojs.TOUCH_ENABLED",t.ec);$("videojs.cache",t.va);$("videojs.Component",t.a);t.a.prototype.player=t.a.prototype.j;t.a.prototype.options=t.a.prototype.options;t.a.prototype.init=t.a.prototype.i;t.a.prototype.dispose=t.a.prototype.dispose;t.a.prototype.createEl=t.a.prototype.e;t.a.prototype.contentEl=t.a.prototype.ja;t.a.prototype.el=t.a.prototype.w;t.a.prototype.addChild=t.a.prototype.R;
|
||||
t.a.prototype.getChild=t.a.prototype.ka;t.a.prototype.getChildById=t.a.prototype.yd;t.a.prototype.children=t.a.prototype.children;t.a.prototype.initChildren=t.a.prototype.vc;t.a.prototype.removeChild=t.a.prototype.removeChild;t.a.prototype.on=t.a.prototype.d;t.a.prototype.off=t.a.prototype.p;t.a.prototype.one=t.a.prototype.X;t.a.prototype.trigger=t.a.prototype.m;t.a.prototype.triggerReady=t.a.prototype.Ga;t.a.prototype.show=t.a.prototype.show;t.a.prototype.hide=t.a.prototype.W;
|
||||
t.a.prototype.width=t.a.prototype.width;t.a.prototype.height=t.a.prototype.height;t.a.prototype.dimensions=t.a.prototype.rd;t.a.prototype.ready=t.a.prototype.J;t.a.prototype.addClass=t.a.prototype.n;t.a.prototype.removeClass=t.a.prototype.q;t.a.prototype.buildCSSClass=t.a.prototype.T;t.a.prototype.localize=t.a.prototype.s;t.Player.prototype.ended=t.Player.prototype.ended;t.Player.prototype.enterFullWindow=t.Player.prototype.pc;t.Player.prototype.exitFullWindow=t.Player.prototype.Cb;
|
||||
t.Player.prototype.preload=t.Player.prototype.Da;t.Player.prototype.remainingTime=t.Player.prototype.remainingTime;t.Player.prototype.supportsFullScreen=t.Player.prototype.Ea;t.Player.prototype.currentType=t.Player.prototype.nd;t.Player.prototype.language=t.Player.prototype.language;t.Player.prototype.languages=t.Player.prototype.Va;$("videojs.MediaLoader",t.cd);$("videojs.TextTrackDisplay",t.fc);$("videojs.ControlBar",t.Ja);$("videojs.Button",t.t);$("videojs.PlayToggle",t.ac);
|
||||
$("videojs.FullscreenToggle",t.Ka);$("videojs.BigPlayButton",t.fb);$("videojs.LoadingSpinner",t.Zb);$("videojs.CurrentTimeDisplay",t.hb);$("videojs.DurationDisplay",t.ib);$("videojs.TimeDivider",t.gc);$("videojs.RemainingTimeDisplay",t.pb);$("videojs.LiveDisplay",t.Yb);$("videojs.ErrorDisplay",t.jb);$("videojs.Slider",t.Q);$("videojs.ProgressControl",t.ob);$("videojs.SeekBar",t.cc);$("videojs.LoadProgressBar",t.lb);$("videojs.PlayProgressBar",t.$b);$("videojs.SeekHandle",t.Ma);
|
||||
$("videojs.VolumeControl",t.rb);$("videojs.VolumeBar",t.qb);$("videojs.VolumeLevel",t.hc);$("videojs.VolumeMenuButton",t.sa);$("videojs.VolumeHandle",t.sb);$("videojs.MuteToggle",t.ia);$("videojs.PosterImage",t.La);$("videojs.Menu",t.ha);$("videojs.MenuItem",t.I);$("videojs.MenuButton",t.L);$("videojs.PlaybackRateMenuButton",t.bc);t.L.prototype.createItems=t.L.prototype.wa;t.V.prototype.createItems=t.V.prototype.wa;t.Ia.prototype.createItems=t.Ia.prototype.wa;$("videojs.SubtitlesButton",t.Na);
|
||||
$("videojs.CaptionsButton",t.Ha);$("videojs.ChaptersButton",t.Ia);$("videojs.MediaTechController",t.u);t.u.prototype.features=t.u.prototype.o;t.u.prototype.o.volumeControl=t.u.prototype.o.Sc;t.u.prototype.o.fullscreenResize=t.u.prototype.o.ne;t.u.prototype.o.progressEvents=t.u.prototype.o.qe;t.u.prototype.o.timeupdateEvents=t.u.prototype.o.te;t.u.prototype.setPoster=t.u.prototype.Jc;$("videojs.Html5",t.g);t.g.Events=t.g.kb;t.g.isSupported=t.g.isSupported;t.g.canPlaySource=t.g.vb;
|
||||
t.g.patchCanPlayType=t.g.Bc;t.g.unpatchCanPlayType=t.g.ie;t.g.prototype.setCurrentTime=t.g.prototype.Qb;t.g.prototype.setVolume=t.g.prototype.ce;t.g.prototype.setMuted=t.g.prototype.$d;t.g.prototype.setPreload=t.g.prototype.be;t.g.prototype.setAutoplay=t.g.prototype.Xd;t.g.prototype.setLoop=t.g.prototype.Zd;t.g.prototype.enterFullScreen=t.g.prototype.oc;t.g.prototype.exitFullScreen=t.g.prototype.vd;t.g.prototype.playbackRate=t.g.prototype.playbackRate;t.g.prototype.setPlaybackRate=t.g.prototype.ae;
|
||||
$("videojs.Flash",t.f);t.f.isSupported=t.f.isSupported;t.f.canPlaySource=t.f.vb;t.f.onReady=t.f.onReady;$("videojs.TextTrack",t.C);t.C.prototype.label=t.C.prototype.label;t.C.prototype.kind=t.C.prototype.K;t.C.prototype.mode=t.C.prototype.mode;t.C.prototype.cues=t.C.prototype.md;t.C.prototype.activeCues=t.C.prototype.ed;$("videojs.CaptionsTrack",t.Wb);$("videojs.SubtitlesTrack",t.dc);$("videojs.ChaptersTrack",t.Xb);$("videojs.autoSetup",t.jc);$("videojs.plugin",t.Vd);$("videojs.createTimeRange",t.zb);
|
||||
$("videojs.util",t.qa);t.qa.mergeOptions=t.qa.Lb;})();
|
||||
t.ic=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!==k&&(a=t.JSON.parse(a||"{}"),videojs(c,a)));else{t.ub();break}else t.Rc||t.ub()};t.ub=function(){setTimeout(t.ic,1)};"complete"===document.readyState?t.Rc=f:t.W(window,"load",function(){t.Rc=f});t.ub();t.Vd=function(a,c){t.Player.prototype[a]=c};var pa=this;function $(a,c){var d=a.split("."),e=pa;!(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",t);$("_V_",t);$("videojs.options",t.options);$("videojs.players",t.Ba);$("videojs.TOUCH_ENABLED",t.dc);$("videojs.cache",t.ua);$("videojs.Component",t.a);t.a.prototype.player=t.a.prototype.j;t.a.prototype.options=t.a.prototype.options;t.a.prototype.init=t.a.prototype.i;t.a.prototype.dispose=t.a.prototype.dispose;t.a.prototype.createEl=t.a.prototype.e;t.a.prototype.contentEl=t.a.prototype.ja;t.a.prototype.el=t.a.prototype.v;t.a.prototype.addChild=t.a.prototype.Q;
|
||||
t.a.prototype.getChild=t.a.prototype.ka;t.a.prototype.getChildById=t.a.prototype.xd;t.a.prototype.children=t.a.prototype.children;t.a.prototype.initChildren=t.a.prototype.uc;t.a.prototype.removeChild=t.a.prototype.removeChild;t.a.prototype.on=t.a.prototype.d;t.a.prototype.off=t.a.prototype.o;t.a.prototype.one=t.a.prototype.W;t.a.prototype.trigger=t.a.prototype.l;t.a.prototype.triggerReady=t.a.prototype.Fa;t.a.prototype.show=t.a.prototype.show;t.a.prototype.hide=t.a.prototype.V;
|
||||
t.a.prototype.width=t.a.prototype.width;t.a.prototype.height=t.a.prototype.height;t.a.prototype.dimensions=t.a.prototype.qd;t.a.prototype.ready=t.a.prototype.I;t.a.prototype.addClass=t.a.prototype.n;t.a.prototype.removeClass=t.a.prototype.p;t.a.prototype.buildCSSClass=t.a.prototype.S;t.a.prototype.localize=t.a.prototype.s;t.Player.prototype.ended=t.Player.prototype.ended;t.Player.prototype.enterFullWindow=t.Player.prototype.oc;t.Player.prototype.exitFullWindow=t.Player.prototype.Cb;
|
||||
t.Player.prototype.preload=t.Player.prototype.Ca;t.Player.prototype.remainingTime=t.Player.prototype.remainingTime;t.Player.prototype.supportsFullScreen=t.Player.prototype.Da;t.Player.prototype.currentType=t.Player.prototype.md;t.Player.prototype.language=t.Player.prototype.language;t.Player.prototype.languages=t.Player.prototype.Ua;$("videojs.MediaLoader",t.ad);$("videojs.TextTrackDisplay",t.ec);$("videojs.ControlBar",t.Ia);$("videojs.Button",t.t);$("videojs.PlayToggle",t.$b);
|
||||
$("videojs.FullscreenToggle",t.Ja);$("videojs.BigPlayButton",t.fb);$("videojs.LoadingSpinner",t.Yb);$("videojs.CurrentTimeDisplay",t.hb);$("videojs.DurationDisplay",t.ib);$("videojs.TimeDivider",t.fc);$("videojs.RemainingTimeDisplay",t.pb);$("videojs.LiveDisplay",t.Xb);$("videojs.ErrorDisplay",t.jb);$("videojs.Slider",t.P);$("videojs.ProgressControl",t.ob);$("videojs.SeekBar",t.bc);$("videojs.LoadProgressBar",t.lb);$("videojs.PlayProgressBar",t.Zb);$("videojs.SeekHandle",t.La);
|
||||
$("videojs.VolumeControl",t.rb);$("videojs.VolumeBar",t.qb);$("videojs.VolumeLevel",t.gc);$("videojs.VolumeMenuButton",t.ra);$("videojs.VolumeHandle",t.sb);$("videojs.MuteToggle",t.ia);$("videojs.PosterImage",t.Ka);$("videojs.Menu",t.ha);$("videojs.MenuItem",t.H);$("videojs.MenuButton",t.K);$("videojs.PlaybackRateMenuButton",t.ac);t.K.prototype.createItems=t.K.prototype.va;t.U.prototype.createItems=t.U.prototype.va;t.Ha.prototype.createItems=t.Ha.prototype.va;$("videojs.SubtitlesButton",t.Ma);
|
||||
$("videojs.CaptionsButton",t.Ga);$("videojs.ChaptersButton",t.Ha);$("videojs.MediaTechController",t.q);t.q.prototype.featuresVolumeControl=t.q.prototype.re;t.q.prototype.featuresFullscreenResize=t.q.prototype.ne;t.q.prototype.featuresPlaybackRate=t.q.prototype.oe;t.q.prototype.featuresProgressEvents=t.q.prototype.pe;t.q.prototype.featuresTimeupdateEvents=t.q.prototype.qe;t.q.prototype.setPoster=t.q.prototype.Ic;$("videojs.Html5",t.g);t.g.Events=t.g.kb;t.g.isSupported=t.g.isSupported;
|
||||
t.g.canPlaySource=t.g.vb;t.g.patchCanPlayType=t.g.Ac;t.g.unpatchCanPlayType=t.g.ie;t.g.prototype.setCurrentTime=t.g.prototype.Pb;t.g.prototype.setVolume=t.g.prototype.ce;t.g.prototype.setMuted=t.g.prototype.$d;t.g.prototype.setPreload=t.g.prototype.be;t.g.prototype.setAutoplay=t.g.prototype.Xd;t.g.prototype.setLoop=t.g.prototype.Zd;t.g.prototype.enterFullScreen=t.g.prototype.nc;t.g.prototype.exitFullScreen=t.g.prototype.ud;t.g.prototype.playbackRate=t.g.prototype.playbackRate;
|
||||
t.g.prototype.setPlaybackRate=t.g.prototype.ae;$("videojs.Flash",t.f);t.f.isSupported=t.f.isSupported;t.f.canPlaySource=t.f.vb;t.f.onReady=t.f.onReady;$("videojs.TextTrack",t.B);t.B.prototype.label=t.B.prototype.label;t.B.prototype.kind=t.B.prototype.J;t.B.prototype.mode=t.B.prototype.mode;t.B.prototype.cues=t.B.prototype.ld;t.B.prototype.activeCues=t.B.prototype.cd;$("videojs.CaptionsTrack",t.Vb);$("videojs.SubtitlesTrack",t.cc);$("videojs.ChaptersTrack",t.Wb);$("videojs.autoSetup",t.ic);
|
||||
$("videojs.plugin",t.Vd);$("videojs.createTimeRange",t.zb);$("videojs.util",t.ga);t.ga.mergeOptions=t.ga.Va;t.addLanguage=t.dd;})();
|
||||
|
||||
@@ -201,7 +201,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -546,7 +546,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -545,7 +545,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -549,7 +549,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -688,7 +688,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -549,7 +549,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -688,7 +688,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -557,7 +557,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ _defined in_: [src/js/component.js#L214](https://github.com/videojs/video.js/blo
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_defined in_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_defined in_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -565,7 +565,7 @@ _defined in_: [src/js/component.js#L756](https://github.com/videojs/video.js/blo
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_defined in_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_defined in_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -545,7 +545,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -609,7 +609,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -609,7 +609,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -545,7 +545,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -609,7 +609,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -554,7 +554,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -548,7 +548,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -559,7 +559,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -559,7 +559,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
+40
-40
@@ -171,7 +171,7 @@ _inherited from_: [src/js/component.js#L672](https://github.com/videojs/video.js
|
||||
##### RETURNS:
|
||||
* `Object` A mock TimeRange object (following HTML spec)
|
||||
|
||||
_defined in_: [src/js/player.js#L743](https://github.com/videojs/video.js/blob/master/src/js/player.js#L743)
|
||||
_defined in_: [src/js/player.js#L742](https://github.com/videojs/video.js/blob/master/src/js/player.js#L742)
|
||||
|
||||
---
|
||||
|
||||
@@ -183,7 +183,7 @@ _defined in_: [src/js/player.js#L743](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `Number` The end of the last buffered time range
|
||||
|
||||
_defined in_: [src/js/player.js#L794](https://github.com/videojs/video.js/blob/master/src/js/player.js#L794)
|
||||
_defined in_: [src/js/player.js#L793](https://github.com/videojs/video.js/blob/master/src/js/player.js#L793)
|
||||
|
||||
---
|
||||
|
||||
@@ -198,7 +198,7 @@ _defined in_: [src/js/player.js#L794](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `Number` A decimal between 0 and 1 representing the percent
|
||||
|
||||
_defined in_: [src/js/player.js#L763](https://github.com/videojs/video.js/blob/master/src/js/player.js#L763)
|
||||
_defined in_: [src/js/player.js#L762](https://github.com/videojs/video.js/blob/master/src/js/player.js#L762)
|
||||
|
||||
---
|
||||
|
||||
@@ -216,7 +216,7 @@ _inherited from_: [src/js/component.js#L515](https://github.com/videojs/video.js
|
||||
> Old naming for exitFullscreen
|
||||
**Deprecated** true
|
||||
|
||||
_defined in_: [src/js/player.js#L999](https://github.com/videojs/video.js/blob/master/src/js/player.js#L999)
|
||||
_defined in_: [src/js/player.js#L998](https://github.com/videojs/video.js/blob/master/src/js/player.js#L998)
|
||||
|
||||
---
|
||||
|
||||
@@ -252,7 +252,7 @@ _inherited from_: [src/js/component.js#L233](https://github.com/videojs/video.js
|
||||
##### RETURNS:
|
||||
* `Boolean` Controls are showing
|
||||
|
||||
_defined in_: [src/js/player.js#L1274](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1274)
|
||||
_defined in_: [src/js/player.js#L1277](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1277)
|
||||
|
||||
---
|
||||
|
||||
@@ -286,7 +286,7 @@ _inherited from_: [src/js/component.js#L194](https://github.com/videojs/video.js
|
||||
* `Number` The time in seconds, when not setting
|
||||
* `vjs.Player` self, when the current time is set
|
||||
|
||||
_defined in_: [src/js/player.js#L670](https://github.com/videojs/video.js/blob/master/src/js/player.js#L670)
|
||||
_defined in_: [src/js/player.js#L669](https://github.com/videojs/video.js/blob/master/src/js/player.js#L669)
|
||||
|
||||
---
|
||||
|
||||
@@ -298,7 +298,7 @@ _defined in_: [src/js/player.js#L670](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `String` The source MIME type
|
||||
|
||||
_defined in_: [src/js/player.js#L1195](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1195)
|
||||
_defined in_: [src/js/player.js#L1198](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1198)
|
||||
|
||||
---
|
||||
|
||||
@@ -343,7 +343,7 @@ _defined in_: [src/js/player.js#L156](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `Number` The duration of the video in seconds
|
||||
|
||||
_defined in_: [src/js/player.js#L698](https://github.com/videojs/video.js/blob/master/src/js/player.js#L698)
|
||||
_defined in_: [src/js/player.js#L697](https://github.com/videojs/video.js/blob/master/src/js/player.js#L697)
|
||||
|
||||
---
|
||||
|
||||
@@ -382,7 +382,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -396,7 +396,7 @@ _inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js
|
||||
* `vjs.MediaError|null` when getting
|
||||
* `vjs.Player` when setting
|
||||
|
||||
_defined in_: [src/js/player.js#L1359](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1359)
|
||||
_defined in_: [src/js/player.js#L1362](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1362)
|
||||
|
||||
---
|
||||
|
||||
@@ -408,7 +408,7 @@ _defined in_: [src/js/player.js#L1359](https://github.com/videojs/video.js/blob/
|
||||
##### RETURNS:
|
||||
* `vjs.Player` self
|
||||
|
||||
_defined in_: [src/js/player.js#L978](https://github.com/videojs/video.js/blob/master/src/js/player.js#L978)
|
||||
_defined in_: [src/js/player.js#L977](https://github.com/videojs/video.js/blob/master/src/js/player.js#L977)
|
||||
|
||||
---
|
||||
|
||||
@@ -536,7 +536,7 @@ _inherited from_: [src/js/component.js#L475](https://github.com/videojs/video.js
|
||||
##### PARAMETERS:
|
||||
* __isFS__
|
||||
|
||||
_defined in_: [src/js/player.js#L901](https://github.com/videojs/video.js/blob/master/src/js/player.js#L901)
|
||||
_defined in_: [src/js/player.js#L900](https://github.com/videojs/video.js/blob/master/src/js/player.js#L900)
|
||||
|
||||
---
|
||||
|
||||
@@ -560,7 +560,7 @@ _defined in_: [src/js/player.js#L901](https://github.com/videojs/video.js/blob/m
|
||||
* `Boolean` true if fullscreen, false if not
|
||||
* `vjs.Player` self, when setting
|
||||
|
||||
_defined in_: [src/js/player.js#L889](https://github.com/videojs/video.js/blob/master/src/js/player.js#L889)
|
||||
_defined in_: [src/js/player.js#L888](https://github.com/videojs/video.js/blob/master/src/js/player.js#L888)
|
||||
|
||||
---
|
||||
|
||||
@@ -594,7 +594,7 @@ _defined in_: [src/js/player.js#L116](https://github.com/videojs/video.js/blob/m
|
||||
* `Boolean` True if mute is on, false if not, when getting
|
||||
* `vjs.Player` self, when setting mute
|
||||
|
||||
_defined in_: [src/js/player.js#L851](https://github.com/videojs/video.js/blob/master/src/js/player.js#L851)
|
||||
_defined in_: [src/js/player.js#L850](https://github.com/videojs/video.js/blob/master/src/js/player.js#L850)
|
||||
|
||||
---
|
||||
|
||||
@@ -653,7 +653,7 @@ _inherited from_: [src/js/component.js#L540](https://github.com/videojs/video.js
|
||||
> A handler for events that signal that waiting has eneded
|
||||
> which is not consistent between browsers. See #1351
|
||||
|
||||
_defined in_: [src/js/player.js#L439](https://github.com/videojs/video.js/blob/master/src/js/player.js#L439)
|
||||
_defined in_: [src/js/player.js#L438](https://github.com/videojs/video.js/blob/master/src/js/player.js#L438)
|
||||
|
||||
---
|
||||
|
||||
@@ -727,7 +727,7 @@ _inherited from_: [src/js/component.js#L173](https://github.com/videojs/video.js
|
||||
##### RETURNS:
|
||||
* `vjs.Player` self
|
||||
|
||||
_defined in_: [src/js/player.js#L639](https://github.com/videojs/video.js/blob/master/src/js/player.js#L639)
|
||||
_defined in_: [src/js/player.js#L638](https://github.com/videojs/video.js/blob/master/src/js/player.js#L638)
|
||||
|
||||
---
|
||||
|
||||
@@ -740,7 +740,7 @@ _defined in_: [src/js/player.js#L639](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `Boolean` false if the media is currently playing, or true otherwise
|
||||
|
||||
_defined in_: [src/js/player.js#L652](https://github.com/videojs/video.js/blob/master/src/js/player.js#L652)
|
||||
_defined in_: [src/js/player.js#L651](https://github.com/videojs/video.js/blob/master/src/js/player.js#L651)
|
||||
|
||||
---
|
||||
|
||||
@@ -752,7 +752,7 @@ _defined in_: [src/js/player.js#L652](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `vjs.Player` self
|
||||
|
||||
_defined in_: [src/js/player.js#L627](https://github.com/videojs/video.js/blob/master/src/js/player.js#L627)
|
||||
_defined in_: [src/js/player.js#L626](https://github.com/videojs/video.js/blob/master/src/js/player.js#L626)
|
||||
|
||||
---
|
||||
|
||||
@@ -784,7 +784,7 @@ _inherited from_: [src/js/component.js#L120](https://github.com/videojs/video.js
|
||||
* `String` poster URL when getting
|
||||
* `vjs.Player` self when setting
|
||||
|
||||
_defined in_: [src/js/player.js#L1247](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1247)
|
||||
_defined in_: [src/js/player.js#L1250](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1250)
|
||||
|
||||
---
|
||||
|
||||
@@ -832,7 +832,7 @@ _inherited from_: [src/js/component.js#L683](https://github.com/videojs/video.js
|
||||
> Old naming for requestFullscreen
|
||||
**Deprecated** true
|
||||
|
||||
_defined in_: [src/js/player.js#L965](https://github.com/videojs/video.js/blob/master/src/js/player.js#L965)
|
||||
_defined in_: [src/js/player.js#L964](https://github.com/videojs/video.js/blob/master/src/js/player.js#L964)
|
||||
|
||||
---
|
||||
|
||||
@@ -851,7 +851,7 @@ _defined in_: [src/js/player.js#L965](https://github.com/videojs/video.js/blob/m
|
||||
##### RETURNS:
|
||||
* `vjs.Player` self
|
||||
|
||||
_defined in_: [src/js/player.js#L920](https://github.com/videojs/video.js/blob/master/src/js/player.js#L920)
|
||||
_defined in_: [src/js/player.js#L919](https://github.com/videojs/video.js/blob/master/src/js/player.js#L919)
|
||||
|
||||
---
|
||||
|
||||
@@ -900,7 +900,7 @@ _inherited from_: [src/js/component.js#L693](https://github.com/videojs/video.js
|
||||
* `String` The current video source when getting
|
||||
* `String` The player when setting
|
||||
|
||||
_defined in_: [src/js/player.js#L1109](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1109)
|
||||
_defined in_: [src/js/player.js#L1108](https://github.com/videojs/video.js/blob/master/src/js/player.js#L1108)
|
||||
|
||||
---
|
||||
|
||||
@@ -948,7 +948,7 @@ _inherited from_: [src/js/component.js#L644](https://github.com/videojs/video.js
|
||||
* `Number` The current volume, when getting
|
||||
* `vjs.Player` self, when setting
|
||||
|
||||
_defined in_: [src/js/player.js#L821](https://github.com/videojs/video.js/blob/master/src/js/player.js#L821)
|
||||
_defined in_: [src/js/player.js#L820](https://github.com/videojs/video.js/blob/master/src/js/player.js#L820)
|
||||
|
||||
---
|
||||
|
||||
@@ -977,14 +977,14 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### durationchange `EVENT`
|
||||
> Fired when the duration of the media resource is first known or changed
|
||||
|
||||
_defined in_: [src/js/player.js#L522](https://github.com/videojs/video.js/blob/master/src/js/player.js#L522)
|
||||
_defined in_: [src/js/player.js#L521](https://github.com/videojs/video.js/blob/master/src/js/player.js#L521)
|
||||
|
||||
---
|
||||
|
||||
### ended `EVENT`
|
||||
> Fired when the end of the media resource is reached (currentTime == duration)
|
||||
|
||||
_defined in_: [src/js/player.js#L511](https://github.com/videojs/video.js/blob/master/src/js/player.js#L511)
|
||||
_defined in_: [src/js/player.js#L510](https://github.com/videojs/video.js/blob/master/src/js/player.js#L510)
|
||||
|
||||
---
|
||||
|
||||
@@ -995,84 +995,84 @@ _defined in_: [src/js/player.js#L511](https://github.com/videojs/video.js/blob/m
|
||||
> implementation yet, so use sparingly. If you don't have a reason to
|
||||
> prevent playback, use `myPlayer.one('play');` instead.
|
||||
|
||||
_defined in_: [src/js/player.js#L468](https://github.com/videojs/video.js/blob/master/src/js/player.js#L468)
|
||||
_defined in_: [src/js/player.js#L467](https://github.com/videojs/video.js/blob/master/src/js/player.js#L467)
|
||||
|
||||
---
|
||||
|
||||
### fullscreenchange `EVENT`
|
||||
> Fired when the player switches in or out of fullscreen mode
|
||||
|
||||
_defined in_: [src/js/player.js#L551](https://github.com/videojs/video.js/blob/master/src/js/player.js#L551)
|
||||
_defined in_: [src/js/player.js#L550](https://github.com/videojs/video.js/blob/master/src/js/player.js#L550)
|
||||
|
||||
---
|
||||
|
||||
### loadedalldata `EVENT`
|
||||
> Fired when the player has finished downloading the source data
|
||||
|
||||
_defined in_: [src/js/player.js#L416](https://github.com/videojs/video.js/blob/master/src/js/player.js#L416)
|
||||
_defined in_: [src/js/player.js#L415](https://github.com/videojs/video.js/blob/master/src/js/player.js#L415)
|
||||
|
||||
---
|
||||
|
||||
### loadeddata `EVENT`
|
||||
> Fired when the player has downloaded data at the current playback position
|
||||
|
||||
_defined in_: [src/js/player.js#L410](https://github.com/videojs/video.js/blob/master/src/js/player.js#L410)
|
||||
_defined in_: [src/js/player.js#L409](https://github.com/videojs/video.js/blob/master/src/js/player.js#L409)
|
||||
|
||||
---
|
||||
|
||||
### loadedmetadata `EVENT`
|
||||
> Fired when the player has initial duration and dimension information
|
||||
|
||||
_defined in_: [src/js/player.js#L404](https://github.com/videojs/video.js/blob/master/src/js/player.js#L404)
|
||||
_defined in_: [src/js/player.js#L403](https://github.com/videojs/video.js/blob/master/src/js/player.js#L403)
|
||||
|
||||
---
|
||||
|
||||
### loadstart `EVENT`
|
||||
> Fired when the user agent begins looking for media data
|
||||
|
||||
_defined in_: [src/js/player.js#L360](https://github.com/videojs/video.js/blob/master/src/js/player.js#L360)
|
||||
_defined in_: [src/js/player.js#L359](https://github.com/videojs/video.js/blob/master/src/js/player.js#L359)
|
||||
|
||||
---
|
||||
|
||||
### pause `EVENT`
|
||||
> Fired whenever the media has been paused
|
||||
|
||||
_defined in_: [src/js/player.js#L482](https://github.com/videojs/video.js/blob/master/src/js/player.js#L482)
|
||||
_defined in_: [src/js/player.js#L481](https://github.com/videojs/video.js/blob/master/src/js/player.js#L481)
|
||||
|
||||
---
|
||||
|
||||
### play `EVENT`
|
||||
> Fired whenever the media begins or resumes playback
|
||||
|
||||
_defined in_: [src/js/player.js#L422](https://github.com/videojs/video.js/blob/master/src/js/player.js#L422)
|
||||
_defined in_: [src/js/player.js#L421](https://github.com/videojs/video.js/blob/master/src/js/player.js#L421)
|
||||
|
||||
---
|
||||
|
||||
### progress `EVENT`
|
||||
> Fired while the user agent is downloading media data
|
||||
|
||||
_defined in_: [src/js/player.js#L500](https://github.com/videojs/video.js/blob/master/src/js/player.js#L500)
|
||||
_defined in_: [src/js/player.js#L499](https://github.com/videojs/video.js/blob/master/src/js/player.js#L499)
|
||||
|
||||
---
|
||||
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
### seeked `EVENT`
|
||||
> Fired when the player has finished jumping to a new time
|
||||
|
||||
_defined in_: [src/js/player.js#L455](https://github.com/videojs/video.js/blob/master/src/js/player.js#L455)
|
||||
_defined in_: [src/js/player.js#L454](https://github.com/videojs/video.js/blob/master/src/js/player.js#L454)
|
||||
|
||||
---
|
||||
|
||||
### seeking `EVENT`
|
||||
> Fired whenever the player is jumping to a new time
|
||||
|
||||
_defined in_: [src/js/player.js#L447](https://github.com/videojs/video.js/blob/master/src/js/player.js#L447)
|
||||
_defined in_: [src/js/player.js#L446](https://github.com/videojs/video.js/blob/master/src/js/player.js#L446)
|
||||
|
||||
---
|
||||
|
||||
@@ -1082,21 +1082,21 @@ _defined in_: [src/js/player.js#L447](https://github.com/videojs/video.js/blob/m
|
||||
> During playback this is fired every 15-250 milliseconds, depnding on the
|
||||
> playback technology in use.
|
||||
|
||||
_defined in_: [src/js/player.js#L494](https://github.com/videojs/video.js/blob/master/src/js/player.js#L494)
|
||||
_defined in_: [src/js/player.js#L493](https://github.com/videojs/video.js/blob/master/src/js/player.js#L493)
|
||||
|
||||
---
|
||||
|
||||
### volumechange `EVENT`
|
||||
> Fired when the volume changes
|
||||
|
||||
_defined in_: [src/js/player.js#L545](https://github.com/videojs/video.js/blob/master/src/js/player.js#L545)
|
||||
_defined in_: [src/js/player.js#L544](https://github.com/videojs/video.js/blob/master/src/js/player.js#L544)
|
||||
|
||||
---
|
||||
|
||||
### waiting `EVENT`
|
||||
> Fired whenever the media begins wating
|
||||
|
||||
_defined in_: [src/js/player.js#L431](https://github.com/videojs/video.js/blob/master/src/js/player.js#L431)
|
||||
_defined in_: [src/js/player.js#L430](https://github.com/videojs/video.js/blob/master/src/js/player.js#L430)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -544,7 +544,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -555,7 +555,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -555,7 +555,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -549,7 +549,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -688,7 +688,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -273,7 +273,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -690,7 +690,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -548,7 +548,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -544,7 +544,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -559,7 +559,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -545,7 +545,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -555,7 +555,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -542,7 +542,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -543,7 +543,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ _inherited from_: [src/js/component.js#L214](https://github.com/videojs/video.js
|
||||
> whenever touch events happen, and this can be turned off by components that
|
||||
> want touch events to act differently.
|
||||
|
||||
_inherited from_: [src/js/component.js#L963](https://github.com/videojs/video.js/blob/master/src/js/component.js#L963)
|
||||
_inherited from_: [src/js/component.js#L966](https://github.com/videojs/video.js/blob/master/src/js/component.js#L966)
|
||||
|
||||
---
|
||||
|
||||
@@ -548,7 +548,7 @@ _inherited from_: [src/js/component.js#L756](https://github.com/videojs/video.js
|
||||
### resize `EVENT`
|
||||
> Fired when the width and/or height of the component changes
|
||||
|
||||
_inherited from_: [src/js/component.js#L863](https://github.com/videojs/video.js/blob/master/src/js/component.js#L863)
|
||||
_inherited from_: [src/js/component.js#L866](https://github.com/videojs/video.js/blob/master/src/js/component.js#L866)
|
||||
|
||||
---
|
||||
|
||||
|
||||
+24
-6
@@ -21,6 +21,11 @@ The `vjs` function can be used to initialize or retrieve a player.
|
||||
- [options](#options)
|
||||
- [players](#players)
|
||||
|
||||
- [METHODS](#methods)
|
||||
- [addLanguage](#addlanguage-code-data-)
|
||||
- [parseUrl](#parseurl-url-)
|
||||
- [plugin](#plugin-name-init-)
|
||||
|
||||
- CLASSES
|
||||
- [BigPlayButton](vjs.BigPlayButton.md)
|
||||
- [Button](vjs.Button.md)
|
||||
@@ -74,10 +79,6 @@ The `vjs` function can be used to initialize or retrieve a player.
|
||||
- [VolumeLevel](vjs.VolumeLevel.md)
|
||||
- [VolumeMenuButton](vjs.VolumeMenuButton.md)
|
||||
|
||||
- [METHODS](#methods)
|
||||
- [parseUrl](#parseurl-url-)
|
||||
- [plugin](#plugin-name-init-)
|
||||
|
||||
- NAMESPACES
|
||||
- [log](vjs.log.md)
|
||||
- [util](vjs.util.md)
|
||||
@@ -99,12 +100,29 @@ _defined in_: [src/js/core.js#L76](https://github.com/videojs/video.js/blob/mast
|
||||
### players
|
||||
> Global player list
|
||||
|
||||
_defined in_: [src/js/core.js#L125](https://github.com/videojs/video.js/blob/master/src/js/core.js#L125)
|
||||
_defined in_: [src/js/core.js#L147](https://github.com/videojs/video.js/blob/master/src/js/core.js#L147)
|
||||
|
||||
---
|
||||
|
||||
## METHODS
|
||||
|
||||
### addLanguage( code, data )
|
||||
> Utility function for adding languages to the default options. Useful for
|
||||
> amending multiple language support at runtime.
|
||||
>
|
||||
> Example: vjs.addLanguage('es', {'Hello':'Hola'});
|
||||
|
||||
##### PARAMETERS:
|
||||
* __code__ `String` The language code or dictionary property
|
||||
* __data__ `Object` The data values to be translated
|
||||
|
||||
##### RETURNS:
|
||||
* `Object` The resulting global languages dictionary object
|
||||
|
||||
_defined in_: [src/js/core.js#L134](https://github.com/videojs/video.js/blob/master/src/js/core.js#L134)
|
||||
|
||||
---
|
||||
|
||||
### parseUrl( url )
|
||||
> Resolve and parse the elements of a URL
|
||||
|
||||
@@ -114,7 +132,7 @@ _defined in_: [src/js/core.js#L125](https://github.com/videojs/video.js/blob/mas
|
||||
##### RETURNS:
|
||||
* `Object` An object of url details
|
||||
|
||||
_defined in_: [src/js/lib.js#L723](https://github.com/videojs/video.js/blob/master/src/js/lib.js#L723)
|
||||
_defined in_: [src/js/lib.js#L734](https://github.com/videojs/video.js/blob/master/src/js/lib.js#L734)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,299 @@
|
||||
Languages
|
||||
=========
|
||||
|
||||
Multiple language support allows for users of non-English locales to natively interact with the displayed player. Video.js will compile multiple langauge files (see below) and instantiate with a global dictionary of language key/value support. Video.js player instances can be created with per-player language support that amends/overrides this default values. Player instances can also hard-set default languges to values other than English as of version 4.7.
|
||||
|
||||
Creating the Language File
|
||||
--------------------------
|
||||
Video.js uses key/value object dictionaries in JSON form. A sample dictionary for Spanish ['es'] would look as follows;
|
||||
|
||||
```JSON
|
||||
{
|
||||
"Play": "Juego",
|
||||
"Pause": "Pausa",
|
||||
"Current Time": "Tiempo Actual",
|
||||
"Duration Time": "Tiempo de Duracion",
|
||||
"Remaining Time": "Tiempo Restante",
|
||||
"Stream Type": "Tipo de Transmision",
|
||||
"LIVE": "En Vivo",
|
||||
"Loaded": "Cargado",
|
||||
"Progress": "Progreso",
|
||||
"Fullscreen": "Pantalla Completa",
|
||||
"Non-Fullscreen": "No Pantalla Completa",
|
||||
"Mute": "Mudo",
|
||||
"Unmuted": "Activar sonido",
|
||||
"Playback Rate": "Reproduccion Cambio",
|
||||
"Subtitles": "Subtitulos",
|
||||
"subtitles off": "subtitulos fuera",
|
||||
"Captions": "Subtitulos",
|
||||
"captions off": "subtitulos fuera",
|
||||
"Chapters": "Capitulos",
|
||||
"You aborted the video playback": "Ha anulado la reproduccion de video",
|
||||
"A network error caused the video download to fail part-way.": "Un error en la red hizo que la descarga de video falle parte del camino.",
|
||||
"The video could not be loaded, either because the server or network failed or because the format is not supported.": "El video no se puede cargar, ya sea porque el servidor o la red fracasaron o porque el formato no es compatible.",
|
||||
"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.": "La reproduccion de video se ha cancelado debido a un problema de corrupcion o porque el video utilizado cuenta con su navegador no soporta.",
|
||||
"No compatible source was found for this video.": "Ninguna fuente compatible se encontro para este video."
|
||||
}
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
- The file name should always be in the format XX.json, where XX is the two letter value of the language reported to the browser (for options see the bottom of this document).
|
||||
- For automatic inclusion at build time, add your language file to the /lang directory (see 'Adding Languages to Video.js below').
|
||||
|
||||
Adding Languages to Video.js
|
||||
----------------------------
|
||||
Additional language support can be added to Video.js in multiple ways.
|
||||
|
||||
1. Add your JSON objects via the videojs.addLanguage API. Preferably in the HEAD element of your DOM or otherwise prior to player instantiation.
|
||||
|
||||
```html
|
||||
<head>
|
||||
<script>
|
||||
videojs.options.flash.swf = '../node_modules/videojs-swf/dist/video-js.swf';
|
||||
videojs.addLanguage('es', {
|
||||
"Play": "Juego",
|
||||
"Pause": "Pausa",
|
||||
"Current Time": "Tiempo Actual",
|
||||
"Duration Time": "Tiempo de Duracion",
|
||||
"Remaining Time": "Tiempo Restante",
|
||||
"Stream Type": "Tipo de Transmision",
|
||||
"LIVE": "En Vivo",
|
||||
"Loaded": "Cargado",
|
||||
"Progress": "Progreso",
|
||||
"Fullscreen": "Pantalla Completa",
|
||||
"Non-Fullscreen": "No Pantalla Completa",
|
||||
"Mute": "Mudo",
|
||||
"Unmuted": "Activar sonido",
|
||||
"Playback Rate": "Reproduccion Cambio",
|
||||
"Subtitles": "Subtitulos",
|
||||
"subtitles off": "subtitulos fuera",
|
||||
"Captions": "Subtitulos",
|
||||
"captions off": "subtitulos fuera",
|
||||
"Chapters": "Capitulos",
|
||||
"You aborted the video playback": "Ha anulado la reproduccion de video",
|
||||
"A network error caused the video download to fail part-way.": "Un error en la red hizo que la descarga de video falle parte del camino.",
|
||||
"The video could not be loaded, either because the server or network failed or because the format is not supported.": "El video no se puede cargar, ya sea porque el servidor o la red fracasaron o porque el formato no es compatible.",
|
||||
"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.": "La reproduccion de video se ha cancelado debido a un problema de corrupcion o porque el video utilizado cuenta con su navegador no soporta.",
|
||||
"No compatible source was found for this video.": "Ninguna fuente compatible se encontro para este video."
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
```
|
||||
|
||||
2. During a Video.js player instantiation. Adding the languages to the configuration object provided in the data-setup attribute.
|
||||
|
||||
```html
|
||||
<video id="example_video_1" class="video-js vjs-default-skin"
|
||||
controls preload="auto" width="640" height="264"
|
||||
data-setup='{"languages":{"es":{"Play":"Juego"}}}'>
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />
|
||||
|
||||
<track kind="captions" src="http://example.com/path/to/captions.vtt" srclang="en" label="English" default>
|
||||
|
||||
</video>
|
||||
```
|
||||
|
||||
Notes:
|
||||
- This will add your language key/values to the videojs player instances individually. If these values already exist in the global dictionary via the process above, those will be overridden for the player instance in question.
|
||||
|
||||
|
||||
Setting Default Language in a Video.js Player
|
||||
---------------------------------------------
|
||||
During a Video.js player instantiation you can force it to localize to a specific language by including the locale value into the configuration object via the data-setup attribute. Valid options listed at the bottom of the page for reference.
|
||||
|
||||
```html
|
||||
<video id="example_video_1" class="video-js vjs-default-skin"
|
||||
controls preload="auto" width="640" height="264"
|
||||
data-setup='{"language":"es"}'>
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />
|
||||
|
||||
<track kind="captions" src="http://example.com/path/to/captions.vtt" srclang="en" label="English" default>
|
||||
|
||||
</video>
|
||||
```
|
||||
|
||||
Language Codes
|
||||
--------------
|
||||
The following is a list of official language codes.
|
||||
|
||||
**NOTE:** For supported language translations, please see the [Languages Folder (/lang)](../../lang) folder located in the project root.
|
||||
|
||||
<table border="0" cellspacing="5" cellpadding="5">
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
<table>
|
||||
<tr><th>ab<th><td>Abkhazian</td></tr>
|
||||
<tr><th>aa<th><td>Afar</td></tr>
|
||||
<tr><th>af<th><td>Afrikaans</td></tr>
|
||||
<tr><th>sq<th><td>Albanian</td></tr>
|
||||
<tr><th>am<th><td>Amharic</td></tr>
|
||||
<tr><th>ar<th><td>Arabic</td></tr>
|
||||
<tr><th>an<th><td>Aragonese</td></tr>
|
||||
<tr><th>hy<th><td>Armenian</td></tr>
|
||||
<tr><th>as<th><td>Assamese</td></tr>
|
||||
<tr><th>ay<th><td>Aymara</td></tr>
|
||||
<tr><th>az<th><td>Azerbaijani</td></tr>
|
||||
<tr><th>ba<th><td>Bashkir</td></tr>
|
||||
<tr><th>eu<th><td>Basque</td></tr>
|
||||
<tr><th>bn<th><td>Bengali (Bangla)</td></tr>
|
||||
<tr><th>dz<th><td>Bhutani</td></tr>
|
||||
<tr><th>bh<th><td>Bihari</td></tr>
|
||||
<tr><th>bi<th><td>Bislama</td></tr>
|
||||
<tr><th>br<th><td>Breton</td></tr>
|
||||
<tr><th>bg<th><td>Bulgarian</td></tr>
|
||||
<tr><th>my<th><td>Burmese</td></tr>
|
||||
<tr><th>be<th><td>Byelorussian (Belarusian)</td></tr>
|
||||
<tr><th>km<th><td>Cambodian</td></tr>
|
||||
<tr><th>ca<th><td>Catalan</td></tr>
|
||||
<tr><th>zh<th><td>Chinese (Simplified)</td></tr>
|
||||
<tr><th>zh<th><td>Chinese (Traditional)</td></tr>
|
||||
<tr><th>co<th><td>Corsican</td></tr>
|
||||
<tr><th>hr<th><td>Croatian</td></tr>
|
||||
<tr><th>cs<th><td>Czech</td></tr>
|
||||
<tr><th>da<th><td>Danish</td></tr>
|
||||
<tr><th>nl<th><td>Dutch</td></tr>
|
||||
<tr><th>en<th><td>English</td></tr>
|
||||
<tr><th>eo<th><td>Esperanto</td></tr>
|
||||
<tr><th>et<th><td>Estonian</td></tr>
|
||||
<tr><th>fo<th><td>Faeroese</td></tr>
|
||||
<tr><th>fa<th><td>Farsi</td></tr>
|
||||
<tr><th>fj<th><td>Fiji</td></tr>
|
||||
<tr><th>fi<th><td>Finnish</td></tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<table>
|
||||
<tr><th>fr<th><td>French</td></tr>
|
||||
<tr><th>fy<th><td>Frisian</td></tr>
|
||||
<tr><th>gl<th><td>Galician</td></tr>
|
||||
<tr><th>gd<th><td>Gaelic (Scottish)</td></tr>
|
||||
<tr><th>gv<th><td>Gaelic (Manx)</td></tr>
|
||||
<tr><th>ka<th><td>Georgian</td></tr>
|
||||
<tr><th>de<th><td>German</td></tr>
|
||||
<tr><th>el<th><td>Greek</td></tr>
|
||||
<tr><th>kl<th><td>Greenlandic</td></tr>
|
||||
<tr><th>gn<th><td>Guarani</td></tr>
|
||||
<tr><th>gu<th><td>Gujarati</td></tr>
|
||||
<tr><th>ht<th><td>Haitian Creole</td></tr>
|
||||
<tr><th>ha<th><td>Hausa</td></tr>
|
||||
<tr><th>he<th><td>Hebrew</td></tr>
|
||||
<tr><th>hi<th><td>Hindi</td></tr>
|
||||
<tr><th>hu<th><td>Hungarian</td></tr>
|
||||
<tr><th>is<th><td>Icelandic</td></tr>
|
||||
<tr><th>io<th><td>Ido</td></tr>
|
||||
<tr><th>id<th><td>Indonesian</td></tr>
|
||||
<tr><th>ia<th><td>Interlingua</td></tr>
|
||||
<tr><th>ie<th><td>Interlingue</td></tr>
|
||||
<tr><th>iu<th><td>Inuktitut</td></tr>
|
||||
<tr><th>ik<th><td>Inupiak</td></tr>
|
||||
<tr><th>ga<th><td>Irish</td></tr>
|
||||
<tr><th>it<th><td>Italian</td></tr>
|
||||
<tr><th>ja<th><td>Japanese</td></tr>
|
||||
<tr><th>jv<th><td>Javanese</td></tr>
|
||||
<tr><th>kn<th><td>Kannada</td></tr>
|
||||
<tr><th>ks<th><td>Kashmiri</td></tr>
|
||||
<tr><th>kk<th><td>Kazakh</td></tr>
|
||||
<tr><th>rw<th><td>Kinyarwanda (Ruanda)</td></tr>
|
||||
<tr><th>ky<th><td>Kirghiz</td></tr>
|
||||
<tr><th>rn<th><td>Kirundi (Rundi)</td></tr>
|
||||
<tr><th>ko<th><td>Korean</td></tr>
|
||||
<tr><th>ku<th><td>Kurdish</td></tr>
|
||||
<tr><th>lo<th><td>Laothian</td></tr>
|
||||
<tr><th>la<th><td>Latin</td></tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<table>
|
||||
<tr><th>lv<th><td>Latvian (Lettish)</td></tr>
|
||||
<tr><th>li<th><td>Limburgish ( Limburger)</td></tr>
|
||||
<tr><th>ln<th><td>Lingala</td></tr>
|
||||
<tr><th>lt<th><td>Lithuanian</td></tr>
|
||||
<tr><th>mk<th><td>Macedonian</td></tr>
|
||||
<tr><th>mg<th><td>Malagasy</td></tr>
|
||||
<tr><th>ms<th><td>Malay</td></tr>
|
||||
<tr><th>ml<th><td>Malayalam</td></tr>
|
||||
<tr><th>mt<th><td>Maltese</td></tr>
|
||||
<tr><th>mi<th><td>Maori</td></tr>
|
||||
<tr><th>mr<th><td>Marathi</td></tr>
|
||||
<tr><th>mo<th><td>Moldavian</td></tr>
|
||||
<tr><th>mn<th><td>Mongolian</td></tr>
|
||||
<tr><th>na<th><td>Nauru</td></tr>
|
||||
<tr><th>ne<th><td>Nepali</td></tr>
|
||||
<tr><th>no<th><td>Norwegian</td></tr>
|
||||
<tr><th>oc<th><td>Occitan</td></tr>
|
||||
<tr><th>or<th><td>Oriya</td></tr>
|
||||
<tr><th>om<th><td>Oromo (Afan, Galla)</td></tr>
|
||||
<tr><th>ps<th><td>Pashto (Pushto)</td></tr>
|
||||
<tr><th>pl<th><td>Polish</td></tr>
|
||||
<tr><th>pt<th><td>Portuguese</td></tr>
|
||||
<tr><th>pa<th><td>Punjabi</td></tr>
|
||||
<tr><th>qu<th><td>Quechua</td></tr>
|
||||
<tr><th>rm<th><td>Rhaeto-Romance</td></tr>
|
||||
<tr><th>ro<th><td>Romanian</td></tr>
|
||||
<tr><th>ru<th><td>Russian</td></tr>
|
||||
<tr><th>sm<th><td>Samoan</td></tr>
|
||||
<tr><th>sg<th><td>Sangro</td></tr>
|
||||
<tr><th>sa<th><td>Sanskrit</td></tr>
|
||||
<tr><th>sr<th><td>Serbian</td></tr>
|
||||
<tr><th>sh<th><td>Serbo-Croatian</td></tr>
|
||||
<tr><th>st<th><td>Sesotho</td></tr>
|
||||
<tr><th>tn<th><td>Setswana</td></tr>
|
||||
<tr><th>sn<th><td>Shona</td></tr>
|
||||
<tr><th>ii<th><td>Sichuan Yi</td></tr>
|
||||
<tr><th>sd<th><td>Sindhi</td></tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<table>
|
||||
<tr><th>si<th><td>Sinhalese</td></tr>
|
||||
<tr><th>ss<th><td>Siswati</td></tr>
|
||||
<tr><th>sk<th><td>Slovak</td></tr>
|
||||
<tr><th>sl<th><td>Slovenian</td></tr>
|
||||
<tr><th>so<th><td>Somali</td></tr>
|
||||
<tr><th>es<th><td>Spanish</td></tr>
|
||||
<tr><th>su<th><td>Sundanese</td></tr>
|
||||
<tr><th>sw<th><td>Swahili (Kiswahili)</td></tr>
|
||||
<tr><th>sv<th><td>Swedish</td></tr>
|
||||
<tr><th>tl<th><td>Tagalog</td></tr>
|
||||
<tr><th>tg<th><td>Tajik</td></tr>
|
||||
<tr><th>ta<th><td>Tamil</td></tr>
|
||||
<tr><th>tt<th><td>Tatar</td></tr>
|
||||
<tr><th>te<th><td>Telugu</td></tr>
|
||||
<tr><th>th<th><td>Thai</td></tr>
|
||||
<tr><th>bo<th><td>Tibetan</td></tr>
|
||||
<tr><th>ti<th><td>Tigrinya</td></tr>
|
||||
<tr><th>to<th><td>Tonga</td></tr>
|
||||
<tr><th>ts<th><td>Tsonga</td></tr>
|
||||
<tr><th>tr<th><td>Turkish</td></tr>
|
||||
<tr><th>tk<th><td>Turkmen</td></tr>
|
||||
<tr><th>tw<th><td>Twi</td></tr>
|
||||
<tr><th>ug<th><td>Uighur</td></tr>
|
||||
<tr><th>uk<th><td>Ukrainian</td></tr>
|
||||
<tr><th>ur<th><td>Urdu</td></tr>
|
||||
<tr><th>uz<th><td>Uzbek</td></tr>
|
||||
<tr><th>vi<th><td>Vietnamese</td></tr>
|
||||
<tr><th>vo<th><td>Volapük</td></tr>
|
||||
<tr><th>wa<th><td>Wallon</td></tr>
|
||||
<tr><th>cy<th><td>Welsh</td></tr>
|
||||
<tr><th>wo<th><td>Wolof</td></tr>
|
||||
<tr><th>xh<th><td>Xhosa</td></tr>
|
||||
<tr><th>yi<th><td>Yiddish</td></tr>
|
||||
<tr><th>yo<th><td>Yoruba</td></tr>
|
||||
<tr><th>zu<th><td>Zulu</td></tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -20,8 +20,8 @@ You can download the Video.js source and host it on your own servers, or use the
|
||||
|
||||
### CDN Version ###
|
||||
```html
|
||||
<link href="//vjs.zencdn.net/4.7/video-js.css" rel="stylesheet">
|
||||
<script src="//vjs.zencdn.net/4.7/video.js"></script>
|
||||
<link href="//vjs.zencdn.net/4.8/video-js.css" rel="stylesheet">
|
||||
<script src="//vjs.zencdn.net/4.8/video.js"></script>
|
||||
```
|
||||
|
||||
### Self Hosted. ###
|
||||
|
||||
@@ -17,7 +17,7 @@ When creating captions, there's also additional [caption formatting techniques]
|
||||
|
||||
Adding to Video.js
|
||||
------------------
|
||||
Once you have your WebVTT file created, you can add it to Video.js using the track trag. Put your track track tag after all the source elements, and before any fallback content.
|
||||
Once you have your WebVTT file created, you can add it to Video.js using the track tag. Put your track tag after all the source elements, and before any fallback content.
|
||||
|
||||
```html
|
||||
<video id="example_video_1" class="video-js vjs-default-skin"
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"Play": "abspielen",
|
||||
"Pause": "pausieren",
|
||||
"Current Time": "aktueller Zeitpunkt",
|
||||
"Duration Time": "gesamte Laufzeit",
|
||||
"Remaining Time": "verbleibende Laufzeit",
|
||||
"Stream Type": "Übertragungstyp",
|
||||
"LIVE": "LIVE",
|
||||
"Loaded": "geladen",
|
||||
"Progress": "Fortschritt",
|
||||
"Fullscreen": "Vollbildschirm AN",
|
||||
"Non-Fullscreen": "Vollbildschirm AUS",
|
||||
"Mute": "Ton AUS",
|
||||
"Unmuted": "Ton AN",
|
||||
"Playback Rate": "Wiedergabegeschwindigkeit",
|
||||
"Subtitles": "Untertitel AN",
|
||||
"subtitles off": "Untertitel AUS",
|
||||
"Captions": "Titel AN",
|
||||
"captions off": "Titel AUS",
|
||||
"Chapters": "Kapitel",
|
||||
"You aborted the video playback": "Sie haben die Video-Wiedergabe abgebrochen.",
|
||||
"A network error caused the video download to fail part-way.": "Ein Fehler bei der Verbindung verursachte eine Unterbrechung mitten im Download.",
|
||||
"The video could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, entweder weil der Server bzw. die Verbindung gestört ist, oder weil das Format nicht kompatibel ist.",
|
||||
"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.": "Die Wiedergabe des Videos wurde unterbrochen. Entweder ist das Video beschädigt oder es benutzt ein Feature welches von diesem Browser nicht unterstützt wird.",
|
||||
"No compatible source was found for this video.": "Für dieses Video wurde keine kompatible Quelle gefunden."
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "video.js",
|
||||
"description": "An HTML5 and Flash video player with a common API and skin for both.",
|
||||
"version": "4.7.2",
|
||||
"version": "4.8.0",
|
||||
"copyright": "Copyright 2014 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE",
|
||||
"keywords": [
|
||||
"videojs",
|
||||
@@ -60,6 +60,7 @@
|
||||
"semver": "~1.1.4",
|
||||
"sinon": "~1.9.1",
|
||||
"uglify-js": "~2.3.6",
|
||||
"videojs-doc-generator": "0.0.1"
|
||||
"videojs-doc-generator": "0.0.1",
|
||||
"grunt-videojs-languages": "0.0.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Set Page Language Here -->
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>VideoJS Languages Demo</title>
|
||||
|
||||
<link href="../build/files/video-js.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- LOAD VIDEO.JS SOURCE FILES IN ORDER -->
|
||||
<script src="../build/source-loader.js"></script>
|
||||
|
||||
<!-- Set the location of the flash SWF -->
|
||||
<!-- Add support for Spanish 'es' -->
|
||||
<script>
|
||||
videojs.options.flash.swf = '../node_modules/videojs-swf/dist/video-js.swf';
|
||||
videojs.addLanguage('es', {
|
||||
"Play": "Juego",
|
||||
"Pause": "Pausa",
|
||||
"Current Time": "Tiempo Actual",
|
||||
"Duration Time": "Tiempo de Duracion",
|
||||
"Remaining Time": "Tiempo Restante",
|
||||
"Stream Type": "Tipo de Transmision",
|
||||
"LIVE": "En Vivo",
|
||||
"Loaded": "Cargado",
|
||||
"Progress": "Progreso",
|
||||
"Fullscreen": "Pantalla Completa",
|
||||
"Non-Fullscreen": "No Pantalla Completa",
|
||||
"Mute": "Mudo",
|
||||
"Unmuted": "Activar sonido",
|
||||
"Playback Rate": "Reproduccion Cambio",
|
||||
"Subtitles": "Subtitulos",
|
||||
"subtitles off": "subtitulos fuera",
|
||||
"Captions": "Subtitulos",
|
||||
"captions off": "subtitulos fuera",
|
||||
"Chapters": "Capitulos",
|
||||
"You aborted the video playback": "Ha anulado la reproduccion de video",
|
||||
"A network error caused the video download to fail part-way.": "Un error en la red hizo que la descarga de video falle parte del camino.",
|
||||
"The video could not be loaded, either because the server or network failed or because the format is not supported.": "El video no se puede cargar, ya sea porque el servidor o la red fracasaron o porque el formato no es compatible.",
|
||||
"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.": "La reproduccion de video se ha cancelado debido a un problema de corrupcion o porque el video utilizado cuenta con su navegador no soporta.",
|
||||
"No compatible source was found for this video.": "Ninguna fuente compatible se encontro para este video."
|
||||
});
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<video id="vid1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264" data-setup=''>
|
||||
<!--
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4'>
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm'>
|
||||
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg'>
|
||||
-->
|
||||
</video>
|
||||
|
||||
<script>
|
||||
var player = videojs("vid1");
|
||||
player.controlBar.show();
|
||||
player.error(1);
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+2
-2
@@ -65,7 +65,7 @@ vjs.Button.prototype.onClick = function(){};
|
||||
|
||||
// Focus - Add keyboard functionality to element
|
||||
vjs.Button.prototype.onFocus = function(){
|
||||
vjs.on(document, 'keyup', vjs.bind(this, this.onKeyPress));
|
||||
vjs.on(document, 'keydown', vjs.bind(this, this.onKeyPress));
|
||||
};
|
||||
|
||||
// KeyPress (document level) - Trigger click when keys are pressed
|
||||
@@ -79,5 +79,5 @@ vjs.Button.prototype.onKeyPress = function(event){
|
||||
|
||||
// Blur - Remove keyboard triggers
|
||||
vjs.Button.prototype.onBlur = function(){
|
||||
vjs.off(document, 'keyup', vjs.bind(this, this.onKeyPress));
|
||||
vjs.off(document, 'keydown', vjs.bind(this, this.onKeyPress));
|
||||
};
|
||||
|
||||
@@ -806,6 +806,9 @@ vjs.Component.prototype.dimensions = function(width, height){
|
||||
*/
|
||||
vjs.Component.prototype.dimension = function(widthOrHeight, num, skipListeners){
|
||||
if (num !== undefined) {
|
||||
if (num === null || vjs.isNaN(num)) {
|
||||
num = 0;
|
||||
}
|
||||
|
||||
// Check if using css width/height (% or px) and adjust
|
||||
if ((''+num).indexOf('%') !== -1 || (''+num).indexOf('px') !== -1) {
|
||||
|
||||
@@ -13,11 +13,11 @@ vjs.MuteToggle = vjs.Button.extend({
|
||||
player.on('volumechange', vjs.bind(this, this.update));
|
||||
|
||||
// hide mute toggle if the current tech doesn't support volume control
|
||||
if (player.tech && player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech && player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
}
|
||||
player.on('loadstart', vjs.bind(this, function(){
|
||||
if (player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
} else {
|
||||
this.removeClass('vjs-hidden');
|
||||
|
||||
@@ -72,7 +72,7 @@ vjs.PlaybackRateMenuButton.prototype.onClick = function(){
|
||||
|
||||
vjs.PlaybackRateMenuButton.prototype.playbackRateSupported = function(){
|
||||
return this.player().tech
|
||||
&& this.player().tech.features['playbackRate']
|
||||
&& this.player().tech['featuresPlaybackRate']
|
||||
&& this.player().options()['playbackRates']
|
||||
&& this.player().options()['playbackRates'].length > 0
|
||||
;
|
||||
|
||||
@@ -11,11 +11,11 @@ vjs.VolumeControl = vjs.Component.extend({
|
||||
vjs.Component.call(this, player, options);
|
||||
|
||||
// hide volume controls when they're not supported by the current tech
|
||||
if (player.tech && player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech && player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
}
|
||||
player.on('loadstart', vjs.bind(this, function(){
|
||||
if (player.tech.features && player.tech.features['volumeControl'] === false) {
|
||||
if (player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
} else {
|
||||
this.removeClass('vjs-hidden');
|
||||
|
||||
@@ -11,11 +11,11 @@ vjs.VolumeMenuButton = vjs.MenuButton.extend({
|
||||
player.on('volumechange', vjs.bind(this, this.update));
|
||||
|
||||
// hide mute toggle if the current tech doesn't support volume control
|
||||
if (player.tech && player.tech.features && player.tech.features.volumeControl === false) {
|
||||
if (player.tech && player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
}
|
||||
player.on('loadstart', vjs.bind(this, function(){
|
||||
if (player.tech.features && player.tech.features.volumeControl === false) {
|
||||
if (player.tech['featuresVolumeControl'] === false) {
|
||||
this.addClass('vjs-hidden');
|
||||
} else {
|
||||
this.removeClass('vjs-hidden');
|
||||
|
||||
@@ -92,6 +92,9 @@ vjs.options = {
|
||||
// Add playback rate selection by adding rates
|
||||
// 'playbackRates': [0.5, 1, 1.5, 2],
|
||||
|
||||
// default inactivity timeout
|
||||
'inactivityTimeout': 2000,
|
||||
|
||||
// Included control sets
|
||||
'children': {
|
||||
'mediaLoader': {},
|
||||
@@ -118,6 +121,25 @@ if (vjs.CDN_VERSION !== 'GENERATED'+'_CDN_VSN') {
|
||||
videojs.options['flash']['swf'] = vjs.ACCESS_PROTOCOL + 'vjs.zencdn.net/'+vjs.CDN_VERSION+'/video-js.swf';
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function for adding languages to the default options. Useful for
|
||||
* amending multiple language support at runtime.
|
||||
*
|
||||
* Example: vjs.addLanguage('es', {'Hello':'Hola'});
|
||||
*
|
||||
* @param {String} code The language code or dictionary property
|
||||
* @param {Object} data The data values to be translated
|
||||
* @return {Object} The resulting global languages dictionary object
|
||||
*/
|
||||
vjs.addLanguage = function(code, data){
|
||||
if(vjs.options['languages'][code] !== undefined) {
|
||||
vjs.options['languages'][code] = vjs.util.mergeOptions(vjs.options['languages'][code], data);
|
||||
} else {
|
||||
vjs.options['languages'][code] = data;
|
||||
}
|
||||
return vjs.options['languages'];
|
||||
};
|
||||
|
||||
/**
|
||||
* Global player list
|
||||
* @type {Object}
|
||||
|
||||
+6
-5
@@ -121,11 +121,11 @@ goog.exportSymbol('videojs.CaptionsButton', vjs.CaptionsButton);
|
||||
goog.exportSymbol('videojs.ChaptersButton', vjs.ChaptersButton);
|
||||
|
||||
goog.exportSymbol('videojs.MediaTechController', vjs.MediaTechController);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'features', vjs.MediaTechController.prototype.features);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype.features, 'volumeControl', vjs.MediaTechController.prototype.features.volumeControl);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype.features, 'fullscreenResize', vjs.MediaTechController.prototype.features.fullscreenResize);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype.features, 'progressEvents', vjs.MediaTechController.prototype.features.progressEvents);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype.features, 'timeupdateEvents', vjs.MediaTechController.prototype.features.timeupdateEvents);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresVolumeControl', vjs.MediaTechController.prototype.featuresVolumeControl);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresFullscreenResize', vjs.MediaTechController.prototype.featuresFullscreenResize);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresPlaybackRate', vjs.MediaTechController.prototype.featuresPlaybackRate);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresProgressEvents', vjs.MediaTechController.prototype.featuresProgressEvents);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresTimeupdateEvents', vjs.MediaTechController.prototype.featuresTimeupdateEvents);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'setPoster', vjs.MediaTechController.prototype.setPoster);
|
||||
|
||||
|
||||
@@ -173,3 +173,4 @@ goog.exportSymbol('videojs.createTimeRange', vjs.createTimeRange);
|
||||
|
||||
goog.exportSymbol('videojs.util', vjs.util);
|
||||
goog.exportProperty(vjs.util, 'mergeOptions', vjs.util.mergeOptions);
|
||||
goog.exportProperty(vjs, 'addLanguage', vjs.addLanguage);
|
||||
|
||||
@@ -171,6 +171,17 @@ vjs.obj.isArray = Array.isArray || function(arr) {
|
||||
return Object.prototype.toString.call(arr) === '[object Array]';
|
||||
};
|
||||
|
||||
/**
|
||||
* Check to see whether the input is NaN or not.
|
||||
* NaN is the only JavaScript construct that isn't equal to itself
|
||||
* @param {Number} num Number to check
|
||||
* @return {Boolean} True if NaN, false otherwise
|
||||
* @private
|
||||
*/
|
||||
vjs.isNaN = function(num) {
|
||||
return num !== num;
|
||||
};
|
||||
|
||||
/**
|
||||
* Bind (a.k.a proxy or Context). A simple method for changing the context of a function
|
||||
It also stores a unique id on the function so it can be easily removed from events
|
||||
|
||||
+13
-7
@@ -13,19 +13,19 @@ vjs.Html5 = vjs.MediaTechController.extend({
|
||||
/** @constructor */
|
||||
init: function(player, options, ready){
|
||||
// volume cannot be changed from 1 on iOS
|
||||
this.features['volumeControl'] = vjs.Html5.canControlVolume();
|
||||
this['featuresVolumeControl'] = vjs.Html5.canControlVolume();
|
||||
|
||||
// just in case; or is it excessively...
|
||||
this.features['playbackRate'] = vjs.Html5.canControlPlaybackRate();
|
||||
this['featuresPlaybackRate'] = vjs.Html5.canControlPlaybackRate();
|
||||
|
||||
// In iOS, if you move a video element in the DOM, it breaks video playback.
|
||||
this.features['movingMediaElementInDOM'] = !vjs.IS_IOS;
|
||||
this['movingMediaElementInDOM'] = !vjs.IS_IOS;
|
||||
|
||||
// HTML video is able to automatically resize when going to fullscreen
|
||||
this.features['fullscreenResize'] = true;
|
||||
this['featuresFullscreenResize'] = true;
|
||||
|
||||
// HTML video supports progress events
|
||||
this.features['progressEvents'] = true;
|
||||
this['featuresProgressEvents'] = true;
|
||||
|
||||
vjs.MediaTechController.call(this, player, options, ready);
|
||||
this.setupTriggers();
|
||||
@@ -75,7 +75,7 @@ vjs.Html5.prototype.createEl = function(){
|
||||
// Check if this browser supports moving the element into the box.
|
||||
// On the iPhone video will break if you move the element,
|
||||
// So we have to create a brand new element.
|
||||
if (!el || this.features['movingMediaElementInDOM'] === false) {
|
||||
if (!el || this['movingMediaElementInDOM'] === false) {
|
||||
|
||||
// If the original tag is still there, clone and remove it.
|
||||
if (el) {
|
||||
@@ -225,7 +225,13 @@ vjs.Html5.prototype.enterFullScreen = function(){
|
||||
vjs.Html5.prototype.exitFullScreen = function(){
|
||||
this.el_.webkitExitFullScreen();
|
||||
};
|
||||
vjs.Html5.prototype.src = function(src){ this.el_.src = src; };
|
||||
vjs.Html5.prototype.src = function(src) {
|
||||
if (src === undefined) {
|
||||
return this.el_.src;
|
||||
} else {
|
||||
this.el_.src = src;
|
||||
}
|
||||
};
|
||||
vjs.Html5.prototype.load = function(){ this.el_.load(); };
|
||||
vjs.Html5.prototype.currentSrc = function(){ return this.el_.currentSrc; };
|
||||
|
||||
|
||||
+11
-13
@@ -19,12 +19,12 @@ vjs.MediaTechController = vjs.Component.extend({
|
||||
vjs.Component.call(this, player, options, ready);
|
||||
|
||||
// Manually track progress in cases where the browser/flash player doesn't report it.
|
||||
if (!this.features['progressEvents']) {
|
||||
if (!this['featuresProgressEvents']) {
|
||||
this.manualProgressOn();
|
||||
}
|
||||
|
||||
// Manually track timeudpates in cases where the browser/flash player doesn't report it.
|
||||
if (!this.features['timeupdateEvents']) {
|
||||
if (!this['featuresTimeupdateEvents']) {
|
||||
this.manualTimeUpdatesOn();
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ vjs.MediaTechController.prototype.manualTimeUpdatesOn = function(){
|
||||
// Watch for native timeupdate event
|
||||
this.one('timeupdate', function(){
|
||||
// Update known progress support for this playback technology
|
||||
this.features['timeupdateEvents'] = true;
|
||||
this['featuresTimeupdateEvents'] = true;
|
||||
// Turn off manual progress tracking
|
||||
this.manualTimeUpdatesOff();
|
||||
});
|
||||
@@ -261,17 +261,15 @@ vjs.MediaTechController.prototype.setCurrentTime = function() {
|
||||
*/
|
||||
vjs.MediaTechController.prototype.setPoster = function(){};
|
||||
|
||||
vjs.MediaTechController.prototype.features = {
|
||||
'volumeControl': true,
|
||||
vjs.MediaTechController.prototype['featuresVolumeControl'] = true;
|
||||
|
||||
// Resizing plugins using request fullscreen reloads the plugin
|
||||
'fullscreenResize': false,
|
||||
'playbackRate': false,
|
||||
// Resizing plugins using request fullscreen reloads the plugin
|
||||
vjs.MediaTechController.prototype['featuresFullscreenResize'] = false;
|
||||
vjs.MediaTechController.prototype['featuresPlaybackRate'] = false;
|
||||
|
||||
// Optional events that we can manually mimic with timers
|
||||
// currently not triggered by video-js-swf
|
||||
'progressEvents': false,
|
||||
'timeupdateEvents': false
|
||||
};
|
||||
// Optional events that we can manually mimic with timers
|
||||
// currently not triggered by video-js-swf
|
||||
vjs.MediaTechController.prototype['featuresProgressEvents'] = false;
|
||||
vjs.MediaTechController.prototype['featuresTimeupdateEvents'] = false;
|
||||
|
||||
vjs.media = {};
|
||||
|
||||
@@ -82,3 +82,8 @@ videojs.Player.prototype.userActive = function(){};
|
||||
* Native controls
|
||||
*/
|
||||
videojs.Player.prototype.usingNativeControls = function(){};
|
||||
|
||||
/**
|
||||
* Source selection
|
||||
*/
|
||||
videojs.Player.prototype.selectSource = function(){};
|
||||
|
||||
+19
-13
@@ -349,7 +349,6 @@ vjs.Player.prototype.unloadTech = function(){
|
||||
// vjs.log('loadedTech')
|
||||
// },
|
||||
|
||||
|
||||
// /* Player event handlers (how the player reacts to certain events)
|
||||
// ================================================================================ */
|
||||
|
||||
@@ -1167,7 +1166,11 @@ vjs.Player.prototype.sourceList_ = function(sources){
|
||||
this.loadTech(sourceTech.tech, sourceTech.source);
|
||||
}
|
||||
} else {
|
||||
this.error({ code: 4, message: this.options()['notSupportedMessage'] });
|
||||
// We need to wrap this in a timeout to give folks a chance to add error event handlers
|
||||
setTimeout(vjs.bind(this, function() {
|
||||
this.error({ code: 4, message: this.localize(this.options()['notSupportedMessage']) });
|
||||
}), 0);
|
||||
|
||||
// we could not find an appropriate tech, but let's still notify the delegate that this is it
|
||||
// this needs a better comment about why this is needed
|
||||
this.triggerReady();
|
||||
@@ -1502,16 +1505,19 @@ vjs.Player.prototype.listenForUserActivity = function(){
|
||||
// Clear any existing inactivity timeout to start the timer over
|
||||
clearTimeout(inactivityTimeout);
|
||||
|
||||
// In X seconds, if no more activity has occurred the user will be
|
||||
// considered inactive
|
||||
inactivityTimeout = setTimeout(vjs.bind(this, function() {
|
||||
// Protect against the case where the inactivityTimeout can trigger just
|
||||
// before the next user activity is picked up by the activityCheck loop
|
||||
// causing a flicker
|
||||
if (!this.userActivity_) {
|
||||
this.userActive(false);
|
||||
}
|
||||
}), 2000);
|
||||
var timeout = this.options()['inactivityTimeout'];
|
||||
if (timeout > 0) {
|
||||
// In <timeout> milliseconds, if no more activity has occurred the
|
||||
// user will be considered inactive
|
||||
inactivityTimeout = setTimeout(vjs.bind(this, function () {
|
||||
// Protect against the case where the inactivityTimeout can trigger just
|
||||
// before the next user activity is picked up by the activityCheck loop
|
||||
// causing a flicker
|
||||
if (!this.userActivity_) {
|
||||
this.userActive(false);
|
||||
}
|
||||
}), timeout);
|
||||
}
|
||||
}
|
||||
}), 250);
|
||||
|
||||
@@ -1528,7 +1534,7 @@ vjs.Player.prototype.playbackRate = function(rate) {
|
||||
return this;
|
||||
}
|
||||
|
||||
if (this.tech && this.tech.features && this.tech.features['playbackRate']) {
|
||||
if (this.tech && this.tech['featuresPlaybackRate']) {
|
||||
return this.techGet('playbackRate');
|
||||
} else {
|
||||
return 1.0;
|
||||
|
||||
+2
-4
@@ -16,7 +16,7 @@ vjs.util = {};
|
||||
vjs.util.mergeOptions = function(obj1, obj2){
|
||||
var key, val1, val2;
|
||||
|
||||
// make a copy of obj1 so we're not ovewriting original values.
|
||||
// make a copy of obj1 so we're not overwriting original values.
|
||||
// like prototype.options_ and all sub options objects
|
||||
obj1 = vjs.obj.copy(obj1);
|
||||
|
||||
@@ -34,6 +34,4 @@ vjs.util.mergeOptions = function(obj1, obj2){
|
||||
}
|
||||
}
|
||||
return obj1;
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
@@ -199,6 +199,34 @@ test('should show and hide an element', function(){
|
||||
ok(comp.el().style.display === 'block');
|
||||
});
|
||||
|
||||
test('dimension() should treat NaN and null as zero', function() {
|
||||
var comp, width, height, newWidth, newHeight;
|
||||
width = 300;
|
||||
height = 150;
|
||||
|
||||
comp = new vjs.Component(getFakePlayer(), {}),
|
||||
// set component dimension
|
||||
|
||||
comp.dimensions(width, height);
|
||||
|
||||
newWidth = comp.dimension('width', null);
|
||||
|
||||
notEqual(newWidth, width, 'new width and old width are not the same');
|
||||
equal(newWidth, comp, 'we set a value, so, return value is component');
|
||||
equal(comp.width(), 0, 'the new width is zero');
|
||||
|
||||
newHeight = comp.dimension('height', NaN);
|
||||
|
||||
notEqual(newHeight, height, 'new height and old height are not the same');
|
||||
equal(newHeight, comp, 'we set a value, so, return value is component');
|
||||
equal(comp.height(), 0, 'the new height is zero');
|
||||
|
||||
comp.width(width);
|
||||
newWidth = comp.dimension('width', undefined);
|
||||
|
||||
equal(newWidth, width, 'we did not set the width with undefined');
|
||||
});
|
||||
|
||||
test('should change the width and height of a component', function(){
|
||||
var container = document.createElement('div');
|
||||
var comp = new vjs.Component(getFakePlayer(), {});
|
||||
|
||||
externo
+4
-8
@@ -12,9 +12,7 @@ test('should hide volume control if it\'s not supported', function(){
|
||||
language: noop,
|
||||
languages: noop,
|
||||
tech: {
|
||||
features: {
|
||||
'volumeControl': false
|
||||
}
|
||||
'featuresVolumeControl': false
|
||||
},
|
||||
volume: function(){},
|
||||
muted: function(){},
|
||||
@@ -47,9 +45,7 @@ test('should test and toggle volume control on `loadstart`', function(){
|
||||
return false;
|
||||
},
|
||||
tech: {
|
||||
features: {
|
||||
'volumeControl': true
|
||||
}
|
||||
'featuresVolumeControl': true
|
||||
},
|
||||
reportUserActivity: function(){}
|
||||
};
|
||||
@@ -62,7 +58,7 @@ test('should test and toggle volume control on `loadstart`', function(){
|
||||
ok(muteToggle.el().className.indexOf('vjs-hidden') < 0,
|
||||
'muteToggle is hidden initially');
|
||||
|
||||
player.tech.features['volumeControl'] = false;
|
||||
player.tech['featuresVolumeControl'] = false;
|
||||
for (i = 0; i < listeners.length; i++) {
|
||||
listeners[i]();
|
||||
}
|
||||
@@ -72,7 +68,7 @@ test('should test and toggle volume control on `loadstart`', function(){
|
||||
ok(muteToggle.el().className.indexOf('vjs-hidden') >= 0,
|
||||
'muteToggle does not hide itself');
|
||||
|
||||
player.tech.features['volumeControl'] = true;
|
||||
player.tech['featuresVolumeControl'] = true;
|
||||
for (i = 0; i < listeners.length; i++) {
|
||||
listeners[i]();
|
||||
}
|
||||
|
||||
@@ -27,3 +27,15 @@ test('should return a video player instance', function(){
|
||||
var player2 = videojs(tag2);
|
||||
ok(player2.id() === 'test_vid_id2', 'created player from element');
|
||||
});
|
||||
|
||||
test('should add the value to the languages object', function() {
|
||||
var code, data, result;
|
||||
|
||||
code = 'es';
|
||||
data = {'Hello': 'Hola'};
|
||||
result = vjs.addLanguage(code, data);
|
||||
|
||||
ok(vjs.options['languages'][code], 'should exist');
|
||||
equal(vjs.options['languages'][code], data, 'should match');
|
||||
deepEqual(result[code], vjs.options['languages'][code], 'should also match');
|
||||
});
|
||||
@@ -136,7 +136,7 @@ test( 'should listen only once in multiple events from a single call', function(
|
||||
vjs.trigger(el, 'click'); // No click should happen.
|
||||
vjs.trigger(el, 'event1'); // event1 must be handled.
|
||||
vjs.trigger(el, 'event1'); // No event1 should be handled.
|
||||
vjs.trigger(el, 'event2'); // event2 must be handled.
|
||||
vjs.trigger(el, 'event2'); // event2 must be handled.
|
||||
vjs.trigger(el, 'event2'); // No event2 should be handled.
|
||||
});
|
||||
|
||||
|
||||
@@ -56,6 +56,12 @@ test('should re-link the player if the tech is moved', function(){
|
||||
test('test playbackRate', function() {
|
||||
var playbackRate;
|
||||
|
||||
// Android 2.3 always returns 0 for playback rate
|
||||
if (!vjs.Html5.canControlPlaybackRate()) {
|
||||
ok('Playback rate is not supported');
|
||||
return;
|
||||
}
|
||||
|
||||
tech.createEl();
|
||||
|
||||
tech.el().playbackRate = 1.25;
|
||||
|
||||
+22
-4
@@ -1,14 +1,14 @@
|
||||
var noop = function() {}, clock, features;
|
||||
var noop = function() {}, clock, featuresProgessEvents;
|
||||
|
||||
module('Media Tech', {
|
||||
'setup': function() {
|
||||
clock = sinon.useFakeTimers();
|
||||
features = videojs.util.mergeOptions({}, videojs.MediaTechController.prototype.features);
|
||||
videojs.MediaTechController.prototype.features['progressEvents'] = false;
|
||||
featuresProgessEvents = videojs.MediaTechController.prototype['featuresProgessEvents'];
|
||||
videojs.MediaTechController.prototype['featuresProgressEvents'] = false;
|
||||
},
|
||||
'teardown': function() {
|
||||
clock.restore();
|
||||
videojs.MediaTechController.prototype.features = features;
|
||||
videojs.MediaTechController.prototype['featuresProgessEvents'] = featuresProgessEvents;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -115,3 +115,21 @@ test('should synthesize progress events by default', function() {
|
||||
clock.tick(500);
|
||||
equal(progresses, 1, 'triggered one event');
|
||||
});
|
||||
|
||||
test('dispose() should stop time tracking', function() {
|
||||
var tech = new videojs.MediaTechController({
|
||||
id: noop,
|
||||
on: noop,
|
||||
trigger: noop
|
||||
});
|
||||
tech.dispose();
|
||||
|
||||
// progress and timeupdate events will throw exceptions after the
|
||||
// tech is disposed
|
||||
try {
|
||||
clock.tick(10 * 1000);
|
||||
} catch (e) {
|
||||
return equal(e, undefined, 'threw an exception');
|
||||
}
|
||||
ok(true, 'no exception was thrown');
|
||||
});
|
||||
|
||||
@@ -42,7 +42,6 @@ vjs.MediaFaker.prototype.muted = function(){ return false; };
|
||||
vjs.MediaFaker.prototype.pause = function(){ return false; };
|
||||
vjs.MediaFaker.prototype.paused = function(){ return true; };
|
||||
vjs.MediaFaker.prototype.supportsFullScreen = function(){ return false; };
|
||||
vjs.MediaFaker.prototype.features = {};
|
||||
vjs.MediaFaker.prototype.buffered = function(){ return {}; };
|
||||
vjs.MediaFaker.prototype.duration = function(){ return {}; };
|
||||
|
||||
|
||||
+84
-1
@@ -1,4 +1,13 @@
|
||||
module('Player');
|
||||
var playerClock;
|
||||
|
||||
module('Player', {
|
||||
'setup': function() {
|
||||
playerClock = sinon.useFakeTimers();
|
||||
},
|
||||
'teardown': function() {
|
||||
playerClock.restore();
|
||||
}
|
||||
});
|
||||
|
||||
// Compiler doesn't like using 'this' in setup/teardown.
|
||||
// module("Player", {
|
||||
@@ -113,6 +122,29 @@ test('should get tag, source, and track settings', function(){
|
||||
ok(player.el() === null, 'player el killed');
|
||||
});
|
||||
|
||||
test('should asynchronously fire error events during source selection', function() {
|
||||
expect(2);
|
||||
|
||||
sinon.stub(vjs.log, 'error');
|
||||
|
||||
var player = PlayerTest.makePlayer({
|
||||
'techOrder': ['foo'],
|
||||
'sources': [
|
||||
{ 'src': 'http://vjs.zencdn.net/v/oceans.mp4', 'type': 'video/mp4' }
|
||||
]
|
||||
});
|
||||
ok(player.options_['techOrder'][0] === 'foo', 'Foo listed as the only tech');
|
||||
|
||||
player.on('error', function(e) {
|
||||
ok(player.error().code === 4, 'Source could not be played error thrown');
|
||||
});
|
||||
|
||||
playerClock.tick(1);
|
||||
|
||||
player.dispose();
|
||||
vjs.log.error.restore();
|
||||
});
|
||||
|
||||
test('should set the width and height of the player', function(){
|
||||
var player = PlayerTest.makePlayer({ width: 123, height: '100%' });
|
||||
|
||||
@@ -518,3 +550,54 @@ test('should restore attributes from the original video tag when creating a new
|
||||
equal(el.getAttribute('controls'), '', 'controls attribute was set properly');
|
||||
equal(el.getAttribute('webkit-playsinline'), '', 'webkit-playsinline attribute was set properly');
|
||||
});
|
||||
|
||||
test('should honor default inactivity timeout', function() {
|
||||
var player;
|
||||
var clock = sinon.useFakeTimers();
|
||||
|
||||
// default timeout is 2000ms
|
||||
player = PlayerTest.makePlayer({});
|
||||
|
||||
equal(player.userActive(), true, 'User is active on creation');
|
||||
clock.tick(1800);
|
||||
equal(player.userActive(), true, 'User is still active');
|
||||
clock.tick(500);
|
||||
equal(player.userActive(), false, 'User is inactive after timeout expired');
|
||||
|
||||
clock.restore();
|
||||
});
|
||||
|
||||
test('should honor configured inactivity timeout', function() {
|
||||
var player;
|
||||
var clock = sinon.useFakeTimers();
|
||||
|
||||
// default timeout is 2000ms, set to shorter 200ms
|
||||
player = PlayerTest.makePlayer({
|
||||
'inactivityTimeout': 200
|
||||
});
|
||||
|
||||
equal(player.userActive(), true, 'User is active on creation');
|
||||
clock.tick(150);
|
||||
equal(player.userActive(), true, 'User is still active');
|
||||
clock.tick(350);
|
||||
// make sure user is now inactive after 500ms
|
||||
equal(player.userActive(), false, 'User is inactive after timeout expired');
|
||||
|
||||
clock.restore();
|
||||
});
|
||||
|
||||
test('should honor disabled inactivity timeout', function() {
|
||||
var player;
|
||||
var clock = sinon.useFakeTimers();
|
||||
|
||||
// default timeout is 2000ms, disable by setting to zero
|
||||
player = PlayerTest.makePlayer({
|
||||
'inactivityTimeout': 0
|
||||
});
|
||||
|
||||
equal(player.userActive(), true, 'User is active on creation');
|
||||
clock.tick(5000);
|
||||
equal(player.userActive(), true, 'User is still active');
|
||||
|
||||
clock.restore();
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@ var PlayerTest = {
|
||||
fixture.appendChild(videoTag);
|
||||
|
||||
playerOptions = playerOptions || {};
|
||||
playerOptions['techOrder'] = ['mediaFaker'];
|
||||
playerOptions['techOrder'] = playerOptions['techOrder'] || ['mediaFaker'];
|
||||
|
||||
return player = new videojs.Player(videoTag, playerOptions);
|
||||
}
|
||||
|
||||
+1
-1
@@ -26,4 +26,4 @@ test('should merge options objects', function(){
|
||||
c: true,
|
||||
d: true
|
||||
}, 'options objects merged correctly');
|
||||
});
|
||||
});
|
||||
Referência em uma Nova Issue
Bloquear um usuário