videojs_rails 4.4.3 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0c79cf1cfd41df21a53972951dad8f415ad313c
|
4
|
+
data.tar.gz: 33d1d37bfccca58268f1831eee295919b80a1a94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29dd80e60b1c7b11d0f57ae0977dea2056de59c5acaca74525cfcf47dd623396a4d37c12831ca6e0f78ddcf23862b2ed3b874c0f70ff2095ab2413f8e0b17216
|
7
|
+
data.tar.gz: 872ccdd4d98119efff93fc22917f5bfdb2df59b73d4c23866b9c797e193109992fb5975e5cd94326c6dfabb87ca529acdf7bd1277de25b589ff328bdd487a6ca
|
@@ -64,7 +64,7 @@ var videojs = vjs;
|
|
64
64
|
window.videojs = window.vjs = vjs;
|
65
65
|
|
66
66
|
// CDN Version. Used to target right flash swf.
|
67
|
-
vjs.CDN_VERSION = '4.
|
67
|
+
vjs.CDN_VERSION = '4.5';
|
68
68
|
vjs.ACCESS_PROTOCOL = ('https:' == document.location.protocol ? 'https://' : 'http://');
|
69
69
|
|
70
70
|
/**
|
@@ -106,7 +106,7 @@ vjs.options = {
|
|
106
106
|
};
|
107
107
|
|
108
108
|
// Set CDN Version of swf
|
109
|
-
// The added (+) blocks the replace from changing this 4.
|
109
|
+
// The added (+) blocks the replace from changing this 4.5 string
|
110
110
|
if (vjs.CDN_VERSION !== 'GENERATED'+'_CDN_VSN') {
|
111
111
|
videojs.options['flash']['swf'] = vjs.ACCESS_PROTOCOL + 'vjs.zencdn.net/'+vjs.CDN_VERSION+'/video-js.swf';
|
112
112
|
}
|
@@ -468,9 +468,11 @@ vjs.fixEvent = function(event) {
|
|
468
468
|
}
|
469
469
|
event.returnValue = false;
|
470
470
|
event.isDefaultPrevented = returnTrue;
|
471
|
+
event.defaultPrevented = true;
|
471
472
|
};
|
472
473
|
|
473
474
|
event.isDefaultPrevented = returnFalse;
|
475
|
+
event.defaultPrevented = false;
|
474
476
|
|
475
477
|
// Stop the event from bubbling
|
476
478
|
event.stopPropagation = function () {
|
@@ -555,7 +557,7 @@ vjs.trigger = function(elem, event) {
|
|
555
557
|
vjs.trigger(parent, event);
|
556
558
|
|
557
559
|
// If at the top of the DOM, triggers the default action unless disabled.
|
558
|
-
} else if (!parent && !event.
|
560
|
+
} else if (!parent && !event.defaultPrevented) {
|
559
561
|
var targetData = vjs.getData(event.target);
|
560
562
|
|
561
563
|
// Checks if the target has a default action for this event.
|
@@ -572,7 +574,7 @@ vjs.trigger = function(elem, event) {
|
|
572
574
|
}
|
573
575
|
|
574
576
|
// Inform the triggerer if the default was prevented by returning false
|
575
|
-
return !event.
|
577
|
+
return !event.defaultPrevented;
|
576
578
|
/* Original version of js ninja events wasn't complete.
|
577
579
|
* We've since updated to the latest version, but keeping this around
|
578
580
|
* for now just in case.
|
@@ -1304,9 +1306,10 @@ vjs.findPosition = function(el) {
|
|
1304
1306
|
scrollTop = window.pageYOffset || body.scrollTop;
|
1305
1307
|
top = box.top + scrollTop - clientTop;
|
1306
1308
|
|
1309
|
+
// Android sometimes returns slightly off decimal values, so need to round
|
1307
1310
|
return {
|
1308
|
-
left: left,
|
1309
|
-
top: top
|
1311
|
+
left: vjs.round(left),
|
1312
|
+
top: vjs.round(top)
|
1310
1313
|
};
|
1311
1314
|
};
|
1312
1315
|
/**
|
@@ -3820,9 +3823,14 @@ vjs.Player.prototype.selectSource = function(sources){
|
|
3820
3823
|
* ]);
|
3821
3824
|
*
|
3822
3825
|
* @param {String|Object|Array=} source The source URL, object, or array of sources
|
3823
|
-
* @return {
|
3826
|
+
* @return {String} The current video source when getting
|
3827
|
+
* @return {String} The player when setting
|
3824
3828
|
*/
|
3825
3829
|
vjs.Player.prototype.src = function(source){
|
3830
|
+
if (source === undefined) {
|
3831
|
+
return this.techGet('src');
|
3832
|
+
}
|
3833
|
+
|
3826
3834
|
// Case: Array of source objects to choose from and pick the best to play
|
3827
3835
|
if (source instanceof Array) {
|
3828
3836
|
|
@@ -3844,6 +3852,7 @@ vjs.Player.prototype.src = function(source){
|
|
3844
3852
|
this.el_.appendChild(vjs.createEl('p', {
|
3845
3853
|
innerHTML: this.options()['notSupportedMessage']
|
3846
3854
|
}));
|
3855
|
+
this.triggerReady(); // we could not find an appropriate tech, but let's still notify the delegate that this is it
|
3847
3856
|
}
|
3848
3857
|
|
3849
3858
|
// Case: Source object { src: '', type: '' ... }
|
@@ -3875,6 +3884,7 @@ vjs.Player.prototype.src = function(source){
|
|
3875
3884
|
}
|
3876
3885
|
}
|
3877
3886
|
}
|
3887
|
+
|
3878
3888
|
return this;
|
3879
3889
|
};
|
3880
3890
|
|
@@ -4074,10 +4084,13 @@ vjs.Player.prototype.userActive = function(bool){
|
|
4074
4084
|
//
|
4075
4085
|
// When this gets resolved in ALL browsers it can be removed
|
4076
4086
|
// https://code.google.com/p/chromium/issues/detail?id=103041
|
4077
|
-
this.tech
|
4078
|
-
|
4079
|
-
|
4080
|
-
|
4087
|
+
if(this.tech) {
|
4088
|
+
this.tech.one('mousemove', function(e){
|
4089
|
+
e.stopPropagation();
|
4090
|
+
e.preventDefault();
|
4091
|
+
});
|
4092
|
+
}
|
4093
|
+
|
4081
4094
|
this.removeClass('vjs-user-active');
|
4082
4095
|
this.addClass('vjs-user-inactive');
|
4083
4096
|
this.trigger('userinactive');
|
@@ -5021,8 +5034,6 @@ vjs.LoadingSpinner = vjs.Component.extend({
|
|
5021
5034
|
player.on('canplay', vjs.bind(this, this.hide));
|
5022
5035
|
player.on('canplaythrough', vjs.bind(this, this.hide));
|
5023
5036
|
player.on('playing', vjs.bind(this, this.hide));
|
5024
|
-
player.on('seeked', vjs.bind(this, this.hide));
|
5025
|
-
|
5026
5037
|
player.on('seeking', vjs.bind(this, this.show));
|
5027
5038
|
|
5028
5039
|
// in some browsers seeking does not trigger the 'playing' event,
|
@@ -5031,6 +5042,7 @@ vjs.LoadingSpinner = vjs.Component.extend({
|
|
5031
5042
|
player.on('seeked', vjs.bind(this, this.hide));
|
5032
5043
|
|
5033
5044
|
player.on('error', vjs.bind(this, this.show));
|
5045
|
+
player.on('ended', vjs.bind(this, this.hide));
|
5034
5046
|
|
5035
5047
|
// Not showing spinner on stalled any more. Browsers may stall and then not trigger any events that would remove the spinner.
|
5036
5048
|
// Checked in Chrome 16 and Safari 5.1.2. http://help.videojs.com/discussions/problems/883-why-is-the-download-progress-showing
|
@@ -5473,8 +5485,8 @@ vjs.Html5.prototype.setPreload = function(val){ this.el_.preload = val; };
|
|
5473
5485
|
vjs.Html5.prototype.autoplay = function(){ return this.el_.autoplay; };
|
5474
5486
|
vjs.Html5.prototype.setAutoplay = function(val){ this.el_.autoplay = val; };
|
5475
5487
|
|
5476
|
-
vjs.Html5.prototype.controls = function(){ return this.el_.controls; }
|
5477
|
-
vjs.Html5.prototype.setControls = function(val){ this.el_.controls = !!val; }
|
5488
|
+
vjs.Html5.prototype.controls = function(){ return this.el_.controls; };
|
5489
|
+
vjs.Html5.prototype.setControls = function(val){ this.el_.controls = !!val; };
|
5478
5490
|
|
5479
5491
|
vjs.Html5.prototype.loop = function(){ return this.el_.loop; };
|
5480
5492
|
vjs.Html5.prototype.setLoop = function(val){ this.el_.loop = val; };
|
@@ -5516,6 +5528,53 @@ vjs.Html5.canControlVolume = function(){
|
|
5516
5528
|
return volume !== vjs.TEST_VID.volume;
|
5517
5529
|
};
|
5518
5530
|
|
5531
|
+
// HTML5 Feature detection and Device Fixes --------------------------------- //
|
5532
|
+
(function() {
|
5533
|
+
var canPlayType,
|
5534
|
+
mpegurlRE = /^application\/(?:x-|vnd\.apple\.)mpegurl/i,
|
5535
|
+
mp4RE = /^video\/mp4/i;
|
5536
|
+
|
5537
|
+
vjs.Html5.patchCanPlayType = function() {
|
5538
|
+
// Android 4.0 and above can play HLS to some extent but it reports being unable to do so
|
5539
|
+
if (vjs.ANDROID_VERSION >= 4.0) {
|
5540
|
+
if (!canPlayType) {
|
5541
|
+
canPlayType = vjs.TEST_VID.constructor.prototype.canPlayType;
|
5542
|
+
}
|
5543
|
+
|
5544
|
+
vjs.TEST_VID.constructor.prototype.canPlayType = function(type) {
|
5545
|
+
if (type && mpegurlRE.test(type)) {
|
5546
|
+
return 'maybe';
|
5547
|
+
}
|
5548
|
+
return canPlayType.call(this, type);
|
5549
|
+
};
|
5550
|
+
}
|
5551
|
+
|
5552
|
+
// Override Android 2.2 and less canPlayType method which is broken
|
5553
|
+
if (vjs.IS_OLD_ANDROID) {
|
5554
|
+
if (!canPlayType) {
|
5555
|
+
canPlayType = vjs.TEST_VID.constructor.prototype.canPlayType;
|
5556
|
+
}
|
5557
|
+
|
5558
|
+
vjs.TEST_VID.constructor.prototype.canPlayType = function(type){
|
5559
|
+
if (type && mp4RE.test(type)) {
|
5560
|
+
return 'maybe';
|
5561
|
+
}
|
5562
|
+
return canPlayType.call(this, type);
|
5563
|
+
};
|
5564
|
+
}
|
5565
|
+
};
|
5566
|
+
|
5567
|
+
vjs.Html5.unpatchCanPlayType = function() {
|
5568
|
+
var r = vjs.TEST_VID.constructor.prototype.canPlayType;
|
5569
|
+
vjs.TEST_VID.constructor.prototype.canPlayType = canPlayType;
|
5570
|
+
canPlayType = null;
|
5571
|
+
return r;
|
5572
|
+
};
|
5573
|
+
|
5574
|
+
// by default, patch the video element
|
5575
|
+
vjs.Html5.patchCanPlayType();
|
5576
|
+
})();
|
5577
|
+
|
5519
5578
|
// List of all HTML5 events (various uses).
|
5520
5579
|
vjs.Html5.Events = 'loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange'.split(',');
|
5521
5580
|
|
@@ -5550,15 +5609,6 @@ vjs.Html5.disposeMediaElement = function(el){
|
|
5550
5609
|
})();
|
5551
5610
|
}
|
5552
5611
|
};
|
5553
|
-
|
5554
|
-
// HTML5 Feature detection and Device Fixes --------------------------------- //
|
5555
|
-
|
5556
|
-
// Override Android 2.2 and less canPlayType method which is broken
|
5557
|
-
if (vjs.IS_OLD_ANDROID) {
|
5558
|
-
document.createElement('video').constructor.prototype.canPlayType = function(type){
|
5559
|
-
return (type && type.toLowerCase().indexOf('video/mp4') != -1) ? 'maybe' : '';
|
5560
|
-
};
|
5561
|
-
}
|
5562
5612
|
/**
|
5563
5613
|
* @fileoverview VideoJS-SWF - Custom Flash Player with HTML5-ish API
|
5564
5614
|
* https://github.com/zencoder/video-js-swf
|
@@ -5819,12 +5869,15 @@ vjs.Flash.prototype.pause = function(){
|
|
5819
5869
|
};
|
5820
5870
|
|
5821
5871
|
vjs.Flash.prototype.src = function(src){
|
5872
|
+
if (src === undefined) {
|
5873
|
+
return this.currentSrc();
|
5874
|
+
}
|
5875
|
+
|
5822
5876
|
if (vjs.Flash.isStreamingSrc(src)) {
|
5823
5877
|
src = vjs.Flash.streamToParts(src);
|
5824
5878
|
this.setRtmpConnection(src.connection);
|
5825
5879
|
this.setRtmpStream(src.stream);
|
5826
|
-
}
|
5827
|
-
else {
|
5880
|
+
} else {
|
5828
5881
|
// Make sure source URL is abosolute.
|
5829
5882
|
src = vjs.getAbsoluteURL(src);
|
5830
5883
|
this.el_.vjs_src(src);
|
@@ -5842,8 +5895,8 @@ vjs.Flash.prototype.currentSrc = function(){
|
|
5842
5895
|
var src = this.el_.vjs_getProperty('currentSrc');
|
5843
5896
|
// no src, check and see if RTMP
|
5844
5897
|
if (src == null) {
|
5845
|
-
var connection = this
|
5846
|
-
stream = this
|
5898
|
+
var connection = this['rtmpConnection'](),
|
5899
|
+
stream = this['rtmpStream']();
|
5847
5900
|
|
5848
5901
|
if (connection && stream) {
|
5849
5902
|
src = vjs.Flash.streamFromParts(connection, stream);
|
@@ -5879,8 +5932,8 @@ vjs.Flash.prototype.enterFullScreen = function(){
|
|
5879
5932
|
// Create setters and getters for attributes
|
5880
5933
|
var api = vjs.Flash.prototype,
|
5881
5934
|
readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(','),
|
5882
|
-
readOnly = 'error,
|
5883
|
-
// Overridden: buffered, currentTime
|
5935
|
+
readOnly = 'error,networkState,readyState,seeking,initialTime,duration,startOffsetTime,paused,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks'.split(',');
|
5936
|
+
// Overridden: buffered, currentTime, currentSrc
|
5884
5937
|
|
5885
5938
|
/**
|
5886
5939
|
* @this {*}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
Video.js Default Styles (http://videojs.com)
|
3
|
-
Version 4.
|
3
|
+
Version 4.5.0
|
4
4
|
Create your own skin at http://designer.videojs.com
|
5
5
|
*/
|
6
6
|
/* SKIN
|
@@ -734,6 +734,10 @@ body.vjs-full-window {
|
|
734
734
|
left: 1em;
|
735
735
|
right: 1em;
|
736
736
|
}
|
737
|
+
/* Move captions down when controls aren't being shown */
|
738
|
+
.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
|
739
|
+
bottom: 1em;
|
740
|
+
}
|
737
741
|
/* Individual tracks */
|
738
742
|
.video-js .vjs-text-track {
|
739
743
|
display: none;
|