Comparar commits
1 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| dd068d8611 |
+6
-1
@@ -2,7 +2,7 @@ language: node_js
|
||||
node_js:
|
||||
- 0.12
|
||||
before_install:
|
||||
- export CHROME_BIN=chromium-browser
|
||||
- export CHROME_BIN=/usr/bin/google-chrome
|
||||
- export DISPLAY=:99.0
|
||||
- sh -e /etc/init.d/xvfb start
|
||||
notifications:
|
||||
@@ -25,3 +25,8 @@ cache:
|
||||
- node_modules
|
||||
addons:
|
||||
firefox: latest
|
||||
apt:
|
||||
sources:
|
||||
- google-chrome
|
||||
packages:
|
||||
- google-chrome-stable
|
||||
|
||||
@@ -6,17 +6,6 @@ _(none)_
|
||||
|
||||
--------------------
|
||||
|
||||
## 5.9.2 (2016-04-19)
|
||||
* @gkatsev grouped text track errors in the console, if we can ([view](https://github.com/videojs/video.js/pull/3259))
|
||||
|
||||
## 5.9.1 (2016-04-19)
|
||||
* @benjipott updated IS_CHROME to not be true on MS Edge ([view](https://github.com/videojs/video.js/pull/3232))
|
||||
* @mister-ben blacklisted Chrome for Android for playback rate support ([view](https://github.com/videojs/video.js/pull/3246))
|
||||
* @gkatsev made the first emulated text track enabled by default ([view](https://github.com/videojs/video.js/pull/3248))
|
||||
* @gkatsev fixed removeRemoteTextTracks not working with return value from addRemoteTextTracks ([view](https://github.com/videojs/video.js/pull/3253))
|
||||
* @forbesjo added back the background color to the poster ([view](https://github.com/videojs/video.js/pull/3267))
|
||||
* @gkatsev fixed text track tests for older IEs ([view](https://github.com/videojs/video.js/pull/3269))
|
||||
|
||||
## 5.9.0 (2016-04-05)
|
||||
* @gkatsev updated vjs to not add dynamic styles when VIDEOJS_NO_DYNAMIC_STYLE is set ([view](https://github.com/videojs/video.js/pull/3093))
|
||||
* @OwenEdwards added basic descriptions track support ([view](https://github.com/videojs/video.js/pull/3098))
|
||||
|
||||
+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": "5.9.2",
|
||||
"version": "5.9.0",
|
||||
"keywords": [
|
||||
"videojs",
|
||||
"html5",
|
||||
|
||||
externo
-1
@@ -903,7 +903,6 @@ body.vjs-full-window {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
background-size: contain;
|
||||
background-color: #000000;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
externo
+1
-1
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+8
-72
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @license
|
||||
* Video.js 5.9.2 <http://videojs.com/>
|
||||
* Video.js 5.9.0 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/master/LICENSE>
|
||||
@@ -5396,10 +5396,9 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
|
||||
};
|
||||
|
||||
/**
|
||||
* Get whether playback rates is supported by the tech
|
||||
* and an array of playback rates exists
|
||||
* Get supported playback rates
|
||||
*
|
||||
* @return {Boolean} Whether changing playback rate is supported
|
||||
* @return {Array} Supported playback rates
|
||||
* @method playbackRateSupported
|
||||
*/
|
||||
|
||||
@@ -12480,15 +12479,8 @@ var Player = (function (_Component) {
|
||||
* @param {Object} track Remote text track to remove
|
||||
* @method removeRemoteTextTrack
|
||||
*/
|
||||
// destructure the input into an object with a track argument, defaulting to arguments[0]
|
||||
// default the whole argument to an empty object if nothing was passed in
|
||||
|
||||
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack() {
|
||||
var _ref3 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
||||
|
||||
var _ref3$track = _ref3.track;
|
||||
var track = _ref3$track === undefined ? arguments[0] : _ref3$track;
|
||||
// jshint ignore:line
|
||||
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
|
||||
this.tech_ && this.tech_['removeRemoteTextTrack'](track);
|
||||
};
|
||||
|
||||
@@ -15441,14 +15433,9 @@ Html5.canControlVolume = function () {
|
||||
/*
|
||||
* Check if playbackRate is supported in this browser/device.
|
||||
*
|
||||
* @return {Boolean}
|
||||
* @return {Number} [description]
|
||||
*/
|
||||
Html5.canControlPlaybackRate = function () {
|
||||
// Playback rate API is implemented in Android Chrome, but doesn't do anything
|
||||
// https://github.com/videojs/video.js/issues/3180
|
||||
if (browser.IS_ANDROID && browser.IS_CHROME) {
|
||||
return false;
|
||||
}
|
||||
var playbackRate = Html5.TEST_VID.playbackRate;
|
||||
Html5.TEST_VID.playbackRate = playbackRate / 2 + 0.1;
|
||||
return playbackRate !== Html5.TEST_VID.playbackRate;
|
||||
@@ -17011,34 +16998,6 @@ var TextTrackDisplay = (function (_Component) {
|
||||
var track = tracks[i];
|
||||
this.player_.addRemoteTextTrack(track);
|
||||
}
|
||||
|
||||
var modes = { 'captions': 1, 'subtitles': 1 };
|
||||
var trackList = this.player_.textTracks();
|
||||
var firstDesc = undefined;
|
||||
var firstCaptions = undefined;
|
||||
|
||||
if (trackList) {
|
||||
for (var i = 0; i < trackList.length; i++) {
|
||||
var track = trackList[i];
|
||||
if (track['default']) {
|
||||
if (track.kind === 'descriptions' && !firstDesc) {
|
||||
firstDesc = track;
|
||||
} else if (track.kind in modes && !firstCaptions) {
|
||||
firstCaptions = track;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We want to show the first default track but captions and subtitles
|
||||
// take precedence over descriptions.
|
||||
// So, display the first default captions or subtitles track
|
||||
// and otherwise the first default descriptions track.
|
||||
if (firstCaptions) {
|
||||
firstCaptions.mode = 'showing';
|
||||
} else if (firstDesc) {
|
||||
firstDesc.mode = 'showing';
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -17943,14 +17902,13 @@ var _xhr2 = _interopRequireDefault(_xhr);
|
||||
*/
|
||||
var parseCues = function parseCues(srcContent, track) {
|
||||
var parser = new _globalWindow2['default'].WebVTT.Parser(_globalWindow2['default'], _globalWindow2['default'].vttjs, _globalWindow2['default'].WebVTT.StringDecoder());
|
||||
var errors = [];
|
||||
|
||||
parser.oncue = function (cue) {
|
||||
track.addCue(cue);
|
||||
};
|
||||
|
||||
parser.onparsingerror = function (error) {
|
||||
errors.push(error);
|
||||
_utilsLogJs2['default'].error(error);
|
||||
};
|
||||
|
||||
parser.onflush = function () {
|
||||
@@ -17961,18 +17919,6 @@ var parseCues = function parseCues(srcContent, track) {
|
||||
};
|
||||
|
||||
parser.parse(srcContent);
|
||||
if (errors.length > 0) {
|
||||
if (console.groupCollapsed) {
|
||||
console.groupCollapsed('Text Track parsing errors for ' + track.src);
|
||||
}
|
||||
errors.forEach(function (error) {
|
||||
return _utilsLogJs2['default'].error(error);
|
||||
});
|
||||
if (console.groupEnd) {
|
||||
console.groupEnd();
|
||||
}
|
||||
}
|
||||
|
||||
parser.flush();
|
||||
};
|
||||
|
||||
@@ -18077,7 +18023,6 @@ var TextTrack = (function (_EventTarget) {
|
||||
|
||||
var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';
|
||||
var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';
|
||||
var default_ = options['default'];
|
||||
var label = options.label || '';
|
||||
var language = options.language || options.srclang || '';
|
||||
var id = options.id || 'vjs_text_track_' + Guid.newGUID();
|
||||
@@ -18132,13 +18077,6 @@ var TextTrack = (function (_EventTarget) {
|
||||
set: function set() {}
|
||||
});
|
||||
|
||||
Object.defineProperty(tt, 'default', {
|
||||
get: function get() {
|
||||
return default_;
|
||||
},
|
||||
set: function set() {}
|
||||
});
|
||||
|
||||
Object.defineProperty(tt, 'mode', {
|
||||
get: function get() {
|
||||
return mode;
|
||||
@@ -18365,9 +18303,7 @@ var IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion
|
||||
exports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;
|
||||
var IS_FIREFOX = /Firefox/i.test(USER_AGENT);
|
||||
exports.IS_FIREFOX = IS_FIREFOX;
|
||||
var IS_EDGE = /Edge/i.test(USER_AGENT);
|
||||
exports.IS_EDGE = IS_EDGE;
|
||||
var IS_CHROME = !IS_EDGE && /Chrome/i.test(USER_AGENT);
|
||||
var IS_CHROME = /Chrome/i.test(USER_AGENT);
|
||||
exports.IS_CHROME = IS_CHROME;
|
||||
var IS_IE8 = /MSIE\s8\.0/.test(USER_AGENT);
|
||||
|
||||
@@ -20378,7 +20314,7 @@ setup.autoSetupTimeout(1, videojs);
|
||||
*
|
||||
* @type {String}
|
||||
*/
|
||||
videojs.VERSION = '5.9.2';
|
||||
videojs.VERSION = '5.9.0';
|
||||
|
||||
/**
|
||||
* The global options object. These are the settings that take effect
|
||||
|
||||
externo
+6
-5
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+1
-1
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
Arquivo binário não exibido.
externo
-1
@@ -902,7 +902,6 @@ body.vjs-full-window {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
background-size: contain;
|
||||
background-color: #000000;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
externo
+1
-1
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+8
-72
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @license
|
||||
* Video.js 5.9.2 <http://videojs.com/>
|
||||
* Video.js 5.9.0 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/master/LICENSE>
|
||||
@@ -5400,10 +5400,9 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
|
||||
};
|
||||
|
||||
/**
|
||||
* Get whether playback rates is supported by the tech
|
||||
* and an array of playback rates exists
|
||||
* Get supported playback rates
|
||||
*
|
||||
* @return {Boolean} Whether changing playback rate is supported
|
||||
* @return {Array} Supported playback rates
|
||||
* @method playbackRateSupported
|
||||
*/
|
||||
|
||||
@@ -12484,15 +12483,8 @@ var Player = (function (_Component) {
|
||||
* @param {Object} track Remote text track to remove
|
||||
* @method removeRemoteTextTrack
|
||||
*/
|
||||
// destructure the input into an object with a track argument, defaulting to arguments[0]
|
||||
// default the whole argument to an empty object if nothing was passed in
|
||||
|
||||
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack() {
|
||||
var _ref3 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
||||
|
||||
var _ref3$track = _ref3.track;
|
||||
var track = _ref3$track === undefined ? arguments[0] : _ref3$track;
|
||||
// jshint ignore:line
|
||||
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
|
||||
this.tech_ && this.tech_['removeRemoteTextTrack'](track);
|
||||
};
|
||||
|
||||
@@ -15445,14 +15437,9 @@ Html5.canControlVolume = function () {
|
||||
/*
|
||||
* Check if playbackRate is supported in this browser/device.
|
||||
*
|
||||
* @return {Boolean}
|
||||
* @return {Number} [description]
|
||||
*/
|
||||
Html5.canControlPlaybackRate = function () {
|
||||
// Playback rate API is implemented in Android Chrome, but doesn't do anything
|
||||
// https://github.com/videojs/video.js/issues/3180
|
||||
if (browser.IS_ANDROID && browser.IS_CHROME) {
|
||||
return false;
|
||||
}
|
||||
var playbackRate = Html5.TEST_VID.playbackRate;
|
||||
Html5.TEST_VID.playbackRate = playbackRate / 2 + 0.1;
|
||||
return playbackRate !== Html5.TEST_VID.playbackRate;
|
||||
@@ -17015,34 +17002,6 @@ var TextTrackDisplay = (function (_Component) {
|
||||
var track = tracks[i];
|
||||
this.player_.addRemoteTextTrack(track);
|
||||
}
|
||||
|
||||
var modes = { 'captions': 1, 'subtitles': 1 };
|
||||
var trackList = this.player_.textTracks();
|
||||
var firstDesc = undefined;
|
||||
var firstCaptions = undefined;
|
||||
|
||||
if (trackList) {
|
||||
for (var i = 0; i < trackList.length; i++) {
|
||||
var track = trackList[i];
|
||||
if (track['default']) {
|
||||
if (track.kind === 'descriptions' && !firstDesc) {
|
||||
firstDesc = track;
|
||||
} else if (track.kind in modes && !firstCaptions) {
|
||||
firstCaptions = track;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We want to show the first default track but captions and subtitles
|
||||
// take precedence over descriptions.
|
||||
// So, display the first default captions or subtitles track
|
||||
// and otherwise the first default descriptions track.
|
||||
if (firstCaptions) {
|
||||
firstCaptions.mode = 'showing';
|
||||
} else if (firstDesc) {
|
||||
firstDesc.mode = 'showing';
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -17947,14 +17906,13 @@ var _xhr2 = _interopRequireDefault(_xhr);
|
||||
*/
|
||||
var parseCues = function parseCues(srcContent, track) {
|
||||
var parser = new _globalWindow2['default'].WebVTT.Parser(_globalWindow2['default'], _globalWindow2['default'].vttjs, _globalWindow2['default'].WebVTT.StringDecoder());
|
||||
var errors = [];
|
||||
|
||||
parser.oncue = function (cue) {
|
||||
track.addCue(cue);
|
||||
};
|
||||
|
||||
parser.onparsingerror = function (error) {
|
||||
errors.push(error);
|
||||
_utilsLogJs2['default'].error(error);
|
||||
};
|
||||
|
||||
parser.onflush = function () {
|
||||
@@ -17965,18 +17923,6 @@ var parseCues = function parseCues(srcContent, track) {
|
||||
};
|
||||
|
||||
parser.parse(srcContent);
|
||||
if (errors.length > 0) {
|
||||
if (console.groupCollapsed) {
|
||||
console.groupCollapsed('Text Track parsing errors for ' + track.src);
|
||||
}
|
||||
errors.forEach(function (error) {
|
||||
return _utilsLogJs2['default'].error(error);
|
||||
});
|
||||
if (console.groupEnd) {
|
||||
console.groupEnd();
|
||||
}
|
||||
}
|
||||
|
||||
parser.flush();
|
||||
};
|
||||
|
||||
@@ -18081,7 +18027,6 @@ var TextTrack = (function (_EventTarget) {
|
||||
|
||||
var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';
|
||||
var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';
|
||||
var default_ = options['default'];
|
||||
var label = options.label || '';
|
||||
var language = options.language || options.srclang || '';
|
||||
var id = options.id || 'vjs_text_track_' + Guid.newGUID();
|
||||
@@ -18136,13 +18081,6 @@ var TextTrack = (function (_EventTarget) {
|
||||
set: function set() {}
|
||||
});
|
||||
|
||||
Object.defineProperty(tt, 'default', {
|
||||
get: function get() {
|
||||
return default_;
|
||||
},
|
||||
set: function set() {}
|
||||
});
|
||||
|
||||
Object.defineProperty(tt, 'mode', {
|
||||
get: function get() {
|
||||
return mode;
|
||||
@@ -18369,9 +18307,7 @@ var IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion
|
||||
exports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;
|
||||
var IS_FIREFOX = /Firefox/i.test(USER_AGENT);
|
||||
exports.IS_FIREFOX = IS_FIREFOX;
|
||||
var IS_EDGE = /Edge/i.test(USER_AGENT);
|
||||
exports.IS_EDGE = IS_EDGE;
|
||||
var IS_CHROME = !IS_EDGE && /Chrome/i.test(USER_AGENT);
|
||||
var IS_CHROME = /Chrome/i.test(USER_AGENT);
|
||||
exports.IS_CHROME = IS_CHROME;
|
||||
var IS_IE8 = /MSIE\s8\.0/.test(USER_AGENT);
|
||||
|
||||
@@ -20382,7 +20318,7 @@ setup.autoSetupTimeout(1, videojs);
|
||||
*
|
||||
* @type {String}
|
||||
*/
|
||||
videojs.VERSION = '5.9.2';
|
||||
videojs.VERSION = '5.9.0';
|
||||
|
||||
/**
|
||||
* The global options object. These are the settings that take effect
|
||||
|
||||
externo
+7
-7
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+7
-6
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+1
-1
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+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": "5.9.2",
|
||||
"version": "5.9.0",
|
||||
"copyright": "Copyright Brightcove, Inc. <https://www.brightcove.com/>",
|
||||
"license": "Apache-2.0",
|
||||
"keywords": [
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
background-size: contain;
|
||||
background-color: #000000;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
@@ -119,10 +119,9 @@ class PlaybackRateMenuButton extends MenuButton {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get whether playback rates is supported by the tech
|
||||
* and an array of playback rates exists
|
||||
* Get supported playback rates
|
||||
*
|
||||
* @return {Boolean} Whether changing playback rate is supported
|
||||
* @return {Array} Supported playback rates
|
||||
* @method playbackRateSupported
|
||||
*/
|
||||
playbackRateSupported() {
|
||||
|
||||
+1
-3
@@ -2579,9 +2579,7 @@ class Player extends Component {
|
||||
* @param {Object} track Remote text track to remove
|
||||
* @method removeRemoteTextTrack
|
||||
*/
|
||||
// destructure the input into an object with a track argument, defaulting to arguments[0]
|
||||
// default the whole argument to an empty object if nothing was passed in
|
||||
removeRemoteTextTrack({track = arguments[0]} = {}) { // jshint ignore:line
|
||||
removeRemoteTextTrack(track) {
|
||||
this.tech_ && this.tech_['removeRemoteTextTrack'](track);
|
||||
}
|
||||
|
||||
|
||||
@@ -935,14 +935,9 @@ Html5.canControlVolume = function(){
|
||||
/*
|
||||
* Check if playbackRate is supported in this browser/device.
|
||||
*
|
||||
* @return {Boolean}
|
||||
* @return {Number} [description]
|
||||
*/
|
||||
Html5.canControlPlaybackRate = function(){
|
||||
// Playback rate API is implemented in Android Chrome, but doesn't do anything
|
||||
// https://github.com/videojs/video.js/issues/3180
|
||||
if (browser.IS_ANDROID && browser.IS_CHROME) {
|
||||
return false;
|
||||
}
|
||||
var playbackRate = Html5.TEST_VID.playbackRate;
|
||||
Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;
|
||||
return playbackRate !== Html5.TEST_VID.playbackRate;
|
||||
|
||||
@@ -58,34 +58,6 @@ class TextTrackDisplay extends Component {
|
||||
let track = tracks[i];
|
||||
this.player_.addRemoteTextTrack(track);
|
||||
}
|
||||
|
||||
let modes = {'captions': 1, 'subtitles': 1};
|
||||
let trackList = this.player_.textTracks();
|
||||
let firstDesc;
|
||||
let firstCaptions;
|
||||
|
||||
if (trackList) {
|
||||
for (let i = 0; i < trackList.length; i++) {
|
||||
let track = trackList[i];
|
||||
if (track.default) {
|
||||
if (track.kind === 'descriptions' && !firstDesc) {
|
||||
firstDesc = track;
|
||||
} else if (track.kind in modes && !firstCaptions) {
|
||||
firstCaptions = track;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We want to show the first default track but captions and subtitles
|
||||
// take precedence over descriptions.
|
||||
// So, display the first default captions or subtitles track
|
||||
// and otherwise the first default descriptions track.
|
||||
if (firstCaptions) {
|
||||
firstCaptions.mode = 'showing';
|
||||
} else if (firstDesc) {
|
||||
firstDesc.mode = 'showing';
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@@ -23,14 +23,13 @@ const parseCues = function(srcContent, track) {
|
||||
let parser = new window.WebVTT.Parser(window,
|
||||
window.vttjs,
|
||||
window.WebVTT.StringDecoder());
|
||||
let errors = [];
|
||||
|
||||
parser.oncue = function(cue) {
|
||||
track.addCue(cue);
|
||||
};
|
||||
|
||||
parser.onparsingerror = function(error) {
|
||||
errors.push(error);
|
||||
log.error(error);
|
||||
};
|
||||
|
||||
parser.onflush = function() {
|
||||
@@ -41,16 +40,6 @@ const parseCues = function(srcContent, track) {
|
||||
};
|
||||
|
||||
parser.parse(srcContent);
|
||||
if (errors.length > 0) {
|
||||
if (console.groupCollapsed) {
|
||||
console.groupCollapsed(`Text Track parsing errors for ${track.src}`);
|
||||
}
|
||||
errors.forEach((error) => log.error(error));
|
||||
if (console.groupEnd) {
|
||||
console.groupEnd();
|
||||
}
|
||||
}
|
||||
|
||||
parser.flush();
|
||||
};
|
||||
|
||||
@@ -147,7 +136,6 @@ class TextTrack extends EventTarget {
|
||||
|
||||
let mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';
|
||||
let kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';
|
||||
let default_ = options.default;
|
||||
let label = options.label || '';
|
||||
let language = options.language || options.srclang || '';
|
||||
let id = options.id || 'vjs_text_track_' + Guid.newGUID();
|
||||
@@ -202,13 +190,6 @@ class TextTrack extends EventTarget {
|
||||
set() {}
|
||||
});
|
||||
|
||||
Object.defineProperty(tt, 'default', {
|
||||
get() {
|
||||
return default_;
|
||||
},
|
||||
set() {}
|
||||
});
|
||||
|
||||
Object.defineProperty(tt, 'mode', {
|
||||
get() {
|
||||
return mode;
|
||||
|
||||
@@ -57,8 +57,7 @@ export const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDR
|
||||
export const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;
|
||||
|
||||
export const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);
|
||||
export const IS_EDGE = (/Edge/i).test(USER_AGENT);
|
||||
export const IS_CHROME = !IS_EDGE && (/Chrome/i).test(USER_AGENT);
|
||||
export const IS_CHROME = (/Chrome/i).test(USER_AGENT);
|
||||
export const IS_IE8 = (/MSIE\s8\.0/).test(USER_AGENT);
|
||||
|
||||
export const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);
|
||||
|
||||
@@ -107,7 +107,7 @@ module.exports = function(config) {
|
||||
'ie8_bs'
|
||||
];
|
||||
} else {
|
||||
settings.browsers = ['Firefox'];
|
||||
settings.browsers = ['chrome_travis', 'Firefox'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +116,11 @@ module.exports = function(config) {
|
||||
|
||||
function getCustomLaunchers(){
|
||||
return {
|
||||
chrome_travis: {
|
||||
base: 'Chrome',
|
||||
flags: ['--no-sandbox']
|
||||
},
|
||||
|
||||
chrome_bs: {
|
||||
base: 'BrowserStack',
|
||||
browser: 'chrome',
|
||||
|
||||
+17
-17
@@ -87,29 +87,29 @@ test('should get tag, source, and track settings', function(){
|
||||
var tag = document.getElementById('example_1');
|
||||
var player = TestHelpers.makePlayer({}, tag);
|
||||
|
||||
equal(player.options_.autoplay, true, 'autoplay is set to true');
|
||||
equal(player.options_.preload, 'none', 'preload is set to none');
|
||||
equal(player.options_.id, 'example_1', 'id is set to example_1');
|
||||
equal(player.options_.sources.length, 2, 'we have two sources');
|
||||
equal(player.options_.sources[0].src, 'http://google.com', 'first source is google.com');
|
||||
equal(player.options_.sources[0].type, 'video/mp4', 'first time is video/mp4');
|
||||
equal(player.options_.sources[1].type, 'video/webm', 'second type is video/webm');
|
||||
equal(player.options_.tracks.length, 1, 'we have one text track');
|
||||
equal(player.options_.tracks[0].kind, 'captions', 'the text track is a captions file');
|
||||
equal(player.options_.tracks[0].attrtest, '', 'we have an empty attribute called attrtest');
|
||||
ok(player.options_['autoplay'] === true);
|
||||
ok(player.options_['preload'] === 'none'); // No extern. Use string.
|
||||
ok(player.options_['id'] === 'example_1');
|
||||
ok(player.options_['sources'].length === 2);
|
||||
ok(player.options_['sources'][0].src === 'http://google.com');
|
||||
ok(player.options_['sources'][0].type === 'video/mp4');
|
||||
ok(player.options_['sources'][1].type === 'video/webm');
|
||||
ok(player.options_['tracks'].length === 1);
|
||||
ok(player.options_['tracks'][0]['kind'] === 'captions'); // No extern
|
||||
ok(player.options_['tracks'][0]['attrtest'] === '');
|
||||
|
||||
notEqual(player.el().className.indexOf('video-js'), -1, 'transferred class from tag to player div');
|
||||
equal(player.el().id,'example_1', 'transferred id from tag to player div');
|
||||
ok(player.el().className.indexOf('video-js') !== -1, 'transferred class from tag to player div');
|
||||
ok(player.el().id === 'example_1', 'transferred id from tag to player div');
|
||||
|
||||
equal(Player.players[player.id()], player, 'player referenceable from global list');
|
||||
notEqual(tag.id, player.id, 'tag ID no longer is the same as player ID');
|
||||
notEqual(tag.className, player.el().className, 'tag classname updated');
|
||||
ok(Player.players[player.id()] === player, 'player referenceable from global list');
|
||||
ok(tag.id !== player.id, 'tag ID no longer is the same as player ID');
|
||||
ok(tag.className !== player.el().className, 'tag classname updated');
|
||||
|
||||
player.dispose();
|
||||
|
||||
notEqual(tag['player'], player, 'tag player ref killed');
|
||||
ok(tag['player'] !== player, 'tag player ref killed');
|
||||
ok(!Player.players['example_1'], 'global player ref killed');
|
||||
equal(player.el(), null, 'player el killed');
|
||||
ok(player.el() === null, 'player el killed');
|
||||
});
|
||||
|
||||
test('should asynchronously fire error events during source selection', function() {
|
||||
|
||||
@@ -475,81 +475,3 @@ test('should uniformly create html track element when adding text track', functi
|
||||
|
||||
player.dispose();
|
||||
});
|
||||
|
||||
test('default text tracks should show by default', function() {
|
||||
let tag = TestHelpers.makeTag();
|
||||
let capt = document.createElement('track');
|
||||
|
||||
capt.setAttribute('kind', 'captions');
|
||||
capt.setAttribute('default', 'default');
|
||||
|
||||
tag.appendChild(capt);
|
||||
|
||||
let player = TestHelpers.makePlayer({
|
||||
html5: {
|
||||
nativeTextTracks: false
|
||||
}
|
||||
}, tag);
|
||||
|
||||
// native tracks are initialized after the player is ready
|
||||
this.clock.tick(1);
|
||||
|
||||
let tracks = player.textTracks();
|
||||
|
||||
equal(tracks[0].kind, 'captions', 'the captions track is present');
|
||||
equal(tracks[0].mode, 'showing', 'the captions track is showing');
|
||||
});
|
||||
|
||||
test('default captions take precedence over default descriptions', function() {
|
||||
let tag = TestHelpers.makeTag();
|
||||
let desc = document.createElement('track');
|
||||
let capt = document.createElement('track');
|
||||
|
||||
desc.setAttribute('kind', 'descriptions');
|
||||
desc.setAttribute('default', 'default');
|
||||
capt.setAttribute('kind', 'captions');
|
||||
capt.setAttribute('default', 'default');
|
||||
|
||||
tag.appendChild(desc);
|
||||
tag.appendChild(capt);
|
||||
|
||||
let player = TestHelpers.makePlayer({
|
||||
html5: {
|
||||
nativeTextTracks: false
|
||||
}
|
||||
}, tag);
|
||||
|
||||
// native tracks are initialized after the player is ready
|
||||
this.clock.tick(1);
|
||||
|
||||
let tracks = player.textTracks();
|
||||
|
||||
equal(tracks[0].kind, 'descriptions', 'the descriptions track is first');
|
||||
equal(tracks[0].mode, 'disabled', 'the descriptions track is disabled');
|
||||
equal(tracks[1].kind, 'captions', 'the captions track is second');
|
||||
equal(tracks[1].mode, 'showing', 'the captions track is showing');
|
||||
});
|
||||
|
||||
test('removeRemoteTextTrack should be able to take both a track and the response from addRemoteTextTrack', function() {
|
||||
let player = TestHelpers.makePlayer();
|
||||
let track = {
|
||||
kind: 'kind',
|
||||
src: 'src',
|
||||
language: 'language',
|
||||
label: 'label',
|
||||
default: 'default'
|
||||
};
|
||||
let htmlTrackElement = player.addRemoteTextTrack(track);
|
||||
|
||||
equal(player.remoteTextTrackEls().length, 1, 'html track element exist');
|
||||
|
||||
player.removeRemoteTextTrack(htmlTrackElement);
|
||||
|
||||
equal(player.remoteTextTrackEls().length, 0, 'the track element was removed correctly');
|
||||
|
||||
htmlTrackElement = player.addRemoteTextTrack(track);
|
||||
equal(player.remoteTextTrackEls().length, 1, 'html track element exist');
|
||||
|
||||
player.removeRemoteTextTrack(htmlTrackElement.track);
|
||||
equal(player.remoteTextTrackEls().length, 0, 'the track element was removed correctly');
|
||||
});
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário