videojs_rails 4.7.1 → 4.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2fe3da25d45a40644fc3712e2d375c39b795b43f
4
- data.tar.gz: f49dd4c3f13ca3c3869529437a884e22353634e9
3
+ metadata.gz: 918442c5c3c107d5102176634cfb96a5dfc8a81f
4
+ data.tar.gz: 70718162b1bd7be3555471517b28606b274b9397
5
5
  SHA512:
6
- metadata.gz: dd48358876421ac51d4dbfba6918a9f9d3f3eabf717c90104f8d411f9f3ac199ee8eb25e43a8f748f2265d3fbed81497a31959fccda801616f2967e0fde5d326
7
- data.tar.gz: da2a0a4ddcafe46abb2f19dee88d119e25a496a93d99e23b71a1f644e00498b6776ddb71e99a90a2d98433cc8528d9c6295c83303594bb24170d07b82bf76299
6
+ metadata.gz: 06e7d5a5b811ae09b738c2a3b5aca88a69aa4f49a8c9354f124a47de31c73db3e7884ad70fed0ae5767d111c95d0f2f548746640aa465c02b7d26f30fdf580bd
7
+ data.tar.gz: 6120b8b7459300f6ece61de0a8545431d628c95aaab995c1cbfcaa64f260e450d40ef1463ccf16027a0509351e186090da49d2a6c3fc581204d01d0ac4dcd2bb
@@ -1,3 +1,3 @@
1
1
  module VideojsRails
2
- VERSION = '4.7.1'
2
+ VERSION = '4.7.2'
3
3
  end
@@ -1402,15 +1402,6 @@ vjs.parseUrl = function(url) {
1402
1402
  return details;
1403
1403
  };
1404
1404
 
1405
- // if there's no console then don't try to output messages
1406
- // they will still be stored in vjs.log.history
1407
- var _noop = function(){};
1408
- var _console = window['console'] || {
1409
- 'log': _noop,
1410
- 'warn': _noop,
1411
- 'error': _noop
1412
- };
1413
-
1414
1405
  /**
1415
1406
  * Log messags to the console and history based on the type of message
1416
1407
  *
@@ -1419,8 +1410,20 @@ var _console = window['console'] || {
1419
1410
  * @private
1420
1411
  */
1421
1412
  function _logType(type, args){
1413
+ var argsArray, noop, console;
1414
+
1422
1415
  // convert args to an array to get array functions
1423
- var argsArray = Array.prototype.slice.call(args);
1416
+ argsArray = Array.prototype.slice.call(args);
1417
+ // if there's no console then don't try to output messages
1418
+ // they will still be stored in vjs.log.history
1419
+ // Was setting these once outside of this function, but containing them
1420
+ // in the function makes it easier to test cases where console doesn't exist
1421
+ noop = function(){};
1422
+ console = window['console'] || {
1423
+ 'log': noop,
1424
+ 'warn': noop,
1425
+ 'error': noop
1426
+ };
1424
1427
 
1425
1428
  if (type) {
1426
1429
  // add the type to the front of the message
@@ -1437,11 +1440,11 @@ function _logType(type, args){
1437
1440
  argsArray.unshift('VIDEOJS:');
1438
1441
 
1439
1442
  // call appropriate log function
1440
- if (_console[type].apply) {
1441
- _console[type].apply(_console, argsArray);
1443
+ if (console[type].apply) {
1444
+ console[type].apply(console, argsArray);
1442
1445
  } else {
1443
1446
  // ie8 doesn't allow error.apply, but it will just join() the array anyway
1444
- _console[type](argsArray.join(' '));
1447
+ console[type](argsArray.join(' '));
1445
1448
  }
1446
1449
  }
1447
1450
 
@@ -3409,10 +3412,6 @@ vjs.Player.prototype.dispose = function(){
3409
3412
  if (this.tag && this.tag['player']) { this.tag['player'] = null; }
3410
3413
  if (this.el_ && this.el_['player']) { this.el_['player'] = null; }
3411
3414
 
3412
- // Ensure that tracking progress and time progress will stop and plater deleted
3413
- this.stopTrackingProgress();
3414
- this.stopTrackingCurrentTime();
3415
-
3416
3415
  if (this.tech) { this.tech.dispose(); }
3417
3416
 
3418
3417
  // Component dispose
@@ -3557,16 +3556,6 @@ vjs.Player.prototype.loadTech = function(techName, source){
3557
3556
 
3558
3557
  var techReady = function(){
3559
3558
  this.player_.triggerReady();
3560
-
3561
- // Manually track progress in cases where the browser/flash player doesn't report it.
3562
- if (!this.features['progressEvents']) {
3563
- this.player_.manualProgressOn();
3564
- }
3565
-
3566
- // Manually track timeudpates in cases where the browser/flash player doesn't report it.
3567
- if (!this.features['timeupdateEvents']) {
3568
- this.player_.manualTimeUpdatesOn();
3569
- }
3570
3559
  };
3571
3560
 
3572
3561
  // Grab tech-specific options from player options and add source and parent element to use.
@@ -3590,11 +3579,6 @@ vjs.Player.prototype.loadTech = function(techName, source){
3590
3579
  vjs.Player.prototype.unloadTech = function(){
3591
3580
  this.isReady_ = false;
3592
3581
 
3593
- // Turn off any manual progress or timeupdate tracking
3594
- if (this.manualProgress) { this.manualProgressOff(); }
3595
-
3596
- if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }
3597
-
3598
3582
  this.tech.dispose();
3599
3583
 
3600
3584
  this.tech = false;
@@ -3614,98 +3598,7 @@ vjs.Player.prototype.unloadTech = function(){
3614
3598
  // vjs.log('loadedTech')
3615
3599
  // },
3616
3600
 
3617
- /* Fallbacks for unsupported event types
3618
- ================================================================================ */
3619
- // Manually trigger progress events based on changes to the buffered amount
3620
- // Many flash players and older HTML5 browsers don't send progress or progress-like events
3621
- vjs.Player.prototype.manualProgressOn = function(){
3622
- this.manualProgress = true;
3623
-
3624
- // Trigger progress watching when a source begins loading
3625
- this.trackProgress();
3626
-
3627
- // Watch for a native progress event call on the tech element
3628
- // In HTML5, some older versions don't support the progress event
3629
- // So we're assuming they don't, and turning off manual progress if they do.
3630
- // As opposed to doing user agent detection
3631
- if (this.tech) {
3632
- this.tech.one('progress', function(){
3633
-
3634
- // Update known progress support for this playback technology
3635
- this.features['progressEvents'] = true;
3636
-
3637
- // Turn off manual progress tracking
3638
- this.player_.manualProgressOff();
3639
- });
3640
- }
3641
- };
3642
-
3643
- vjs.Player.prototype.manualProgressOff = function(){
3644
- this.manualProgress = false;
3645
- this.stopTrackingProgress();
3646
- };
3647
-
3648
- vjs.Player.prototype.trackProgress = function(){
3649
-
3650
- this.progressInterval = setInterval(vjs.bind(this, function(){
3651
- // Don't trigger unless buffered amount is greater than last time
3652
-
3653
- var bufferedPercent = this.bufferedPercent();
3654
-
3655
- if (this.cache_.bufferedPercent != bufferedPercent) {
3656
- this.trigger('progress');
3657
- }
3658
-
3659
- this.cache_.bufferedPercent = bufferedPercent;
3660
-
3661
- if (bufferedPercent == 1) {
3662
- this.stopTrackingProgress();
3663
- }
3664
- }), 500);
3665
- };
3666
- vjs.Player.prototype.stopTrackingProgress = function(){ clearInterval(this.progressInterval); };
3667
-
3668
- /*! Time Tracking -------------------------------------------------------------- */
3669
- vjs.Player.prototype.manualTimeUpdatesOn = function(){
3670
- this.manualTimeUpdates = true;
3671
-
3672
- this.on('play', this.trackCurrentTime);
3673
- this.on('pause', this.stopTrackingCurrentTime);
3674
- // timeupdate is also called by .currentTime whenever current time is set
3675
-
3676
- // Watch for native timeupdate event
3677
- if (this.tech) {
3678
- this.tech.one('timeupdate', function(){
3679
- // Update known progress support for this playback technology
3680
- this.features['timeupdateEvents'] = true;
3681
- // Turn off manual progress tracking
3682
- this.player_.manualTimeUpdatesOff();
3683
- });
3684
- }
3685
- };
3686
-
3687
- vjs.Player.prototype.manualTimeUpdatesOff = function(){
3688
- this.manualTimeUpdates = false;
3689
- this.stopTrackingCurrentTime();
3690
- this.off('play', this.trackCurrentTime);
3691
- this.off('pause', this.stopTrackingCurrentTime);
3692
- };
3693
-
3694
- vjs.Player.prototype.trackCurrentTime = function(){
3695
- if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }
3696
- this.currentTimeInterval = setInterval(vjs.bind(this, function(){
3697
- this.trigger('timeupdate');
3698
- }), 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15
3699
- };
3700
-
3701
- // Turn off play progress tracking (when paused or dragging)
3702
- vjs.Player.prototype.stopTrackingCurrentTime = function(){
3703
- clearInterval(this.currentTimeInterval);
3704
3601
 
3705
- // #1002 - if the video ends right before the next timeupdate would happen,
3706
- // the progress bar won't make it all the way to the end
3707
- this.trigger('timeupdate');
3708
- };
3709
3602
  // /* Player event handlers (how the player reacts to certain events)
3710
3603
  // ================================================================================ */
3711
3604
 
@@ -4028,9 +3921,6 @@ vjs.Player.prototype.currentTime = function(seconds){
4028
3921
 
4029
3922
  this.techCall('setCurrentTime', seconds);
4030
3923
 
4031
- // improve the accuracy of manual timeupdates
4032
- if (this.manualTimeUpdates) { this.trigger('timeupdate'); }
4033
-
4034
3924
  return this;
4035
3925
  }
4036
3926
 
@@ -5996,6 +5886,16 @@ vjs.MediaTechController = vjs.Component.extend({
5996
5886
  options.reportTouchActivity = false;
5997
5887
  vjs.Component.call(this, player, options, ready);
5998
5888
 
5889
+ // Manually track progress in cases where the browser/flash player doesn't report it.
5890
+ if (!this.features['progressEvents']) {
5891
+ this.manualProgressOn();
5892
+ }
5893
+
5894
+ // Manually track timeudpates in cases where the browser/flash player doesn't report it.
5895
+ if (!this.features['timeupdateEvents']) {
5896
+ this.manualTimeUpdatesOn();
5897
+ }
5898
+
5999
5899
  this.initControlsListeners();
6000
5900
  }
6001
5901
  });
@@ -6131,6 +6031,96 @@ vjs.MediaTechController.prototype.onTap = function(){
6131
6031
  this.player().userActive(!this.player().userActive());
6132
6032
  };
6133
6033
 
6034
+ /* Fallbacks for unsupported event types
6035
+ ================================================================================ */
6036
+ // Manually trigger progress events based on changes to the buffered amount
6037
+ // Many flash players and older HTML5 browsers don't send progress or progress-like events
6038
+ vjs.MediaTechController.prototype.manualProgressOn = function(){
6039
+ this.manualProgress = true;
6040
+
6041
+ // Trigger progress watching when a source begins loading
6042
+ this.trackProgress();
6043
+ };
6044
+
6045
+ vjs.MediaTechController.prototype.manualProgressOff = function(){
6046
+ this.manualProgress = false;
6047
+ this.stopTrackingProgress();
6048
+ };
6049
+
6050
+ vjs.MediaTechController.prototype.trackProgress = function(){
6051
+
6052
+ this.progressInterval = setInterval(vjs.bind(this, function(){
6053
+ // Don't trigger unless buffered amount is greater than last time
6054
+
6055
+ var bufferedPercent = this.player().bufferedPercent();
6056
+
6057
+ if (this.bufferedPercent_ != bufferedPercent) {
6058
+ this.player().trigger('progress');
6059
+ }
6060
+
6061
+ this.bufferedPercent_ = bufferedPercent;
6062
+
6063
+ if (bufferedPercent === 1) {
6064
+ this.stopTrackingProgress();
6065
+ }
6066
+ }), 500);
6067
+ };
6068
+ vjs.MediaTechController.prototype.stopTrackingProgress = function(){ clearInterval(this.progressInterval); };
6069
+
6070
+ /*! Time Tracking -------------------------------------------------------------- */
6071
+ vjs.MediaTechController.prototype.manualTimeUpdatesOn = function(){
6072
+ this.manualTimeUpdates = true;
6073
+
6074
+ this.player().on('play', vjs.bind(this, this.trackCurrentTime));
6075
+ this.player().on('pause', vjs.bind(this, this.stopTrackingCurrentTime));
6076
+ // timeupdate is also called by .currentTime whenever current time is set
6077
+
6078
+ // Watch for native timeupdate event
6079
+ this.one('timeupdate', function(){
6080
+ // Update known progress support for this playback technology
6081
+ this.features['timeupdateEvents'] = true;
6082
+ // Turn off manual progress tracking
6083
+ this.manualTimeUpdatesOff();
6084
+ });
6085
+ };
6086
+
6087
+ vjs.MediaTechController.prototype.manualTimeUpdatesOff = function(){
6088
+ this.manualTimeUpdates = false;
6089
+ this.stopTrackingCurrentTime();
6090
+ this.off('play', this.trackCurrentTime);
6091
+ this.off('pause', this.stopTrackingCurrentTime);
6092
+ };
6093
+
6094
+ vjs.MediaTechController.prototype.trackCurrentTime = function(){
6095
+ if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }
6096
+ this.currentTimeInterval = setInterval(vjs.bind(this, function(){
6097
+ this.player().trigger('timeupdate');
6098
+ }), 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15
6099
+ };
6100
+
6101
+ // Turn off play progress tracking (when paused or dragging)
6102
+ vjs.MediaTechController.prototype.stopTrackingCurrentTime = function(){
6103
+ clearInterval(this.currentTimeInterval);
6104
+
6105
+ // #1002 - if the video ends right before the next timeupdate would happen,
6106
+ // the progress bar won't make it all the way to the end
6107
+ this.player().trigger('timeupdate');
6108
+ };
6109
+
6110
+ vjs.MediaTechController.prototype.dispose = function() {
6111
+ // Turn off any manual progress or timeupdate tracking
6112
+ if (this.manualProgress) { this.manualProgressOff(); }
6113
+
6114
+ if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }
6115
+
6116
+ vjs.Component.prototype.dispose.call(this);
6117
+ };
6118
+
6119
+ vjs.MediaTechController.prototype.setCurrentTime = function() {
6120
+ // improve the accuracy of manual timeupdates
6121
+ if (this.manualTimeUpdates) { this.player().trigger('timeupdate'); }
6122
+ };
6123
+
6134
6124
  /**
6135
6125
  * Provide a default setPoster method for techs
6136
6126
  *
@@ -6179,6 +6169,9 @@ vjs.Html5 = vjs.MediaTechController.extend({
6179
6169
  // HTML video is able to automatically resize when going to fullscreen
6180
6170
  this.features['fullscreenResize'] = true;
6181
6171
 
6172
+ // HTML video supports progress events
6173
+ this.features['progressEvents'] = true;
6174
+
6182
6175
  vjs.MediaTechController.call(this, player, options, ready);
6183
6176
  this.setupTriggers();
6184
6177
 
@@ -6672,6 +6665,7 @@ vjs.Flash.prototype.src = function(src){
6672
6665
  vjs.Flash.prototype['setCurrentTime'] = function(time){
6673
6666
  this.lastSeekTarget_ = time;
6674
6667
  this.el_.vjs_setProperty('currentTime', time);
6668
+ vjs.MediaTechController.prototype.setCurrentTime.call(this);
6675
6669
  };
6676
6670
 
6677
6671
  vjs.Flash.prototype['currentTime'] = function(time){
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  Video.js Default Styles (http://videojs.com)
3
- Version 4.7.1
3
+ Version 4.7.2
4
4
  Create your own skin at http://designer.videojs.com
5
5
  */
6
6
  /* SKIN
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: videojs_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.1
4
+ version: 4.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Behan