mirror of
https://github.com/kmoskwiak/videojs-resolution-switcher.git
synced 2025-10-05 02:39:33 +02:00
Merge 2e2942abff
into 85f1e51c8b
This commit is contained in:
commit
5fe0939bf6
2 changed files with 21 additions and 11 deletions
|
@ -35,12 +35,14 @@
|
|||
}
|
||||
} );
|
||||
ResolutionMenuItem.prototype.handleClick = function(event){
|
||||
MenuItem.prototype.handleClick.call(this,event);
|
||||
MenuItem.prototype.handleClick.call(this, event);
|
||||
this.player_.currentResolution(this.options_.label);
|
||||
};
|
||||
ResolutionMenuItem.prototype.update = function(){
|
||||
var selection = this.player_.currentResolution();
|
||||
this.selected(this.options_.label === selection.label);
|
||||
var selection = (this.player_ && this.player_.currentResolution() ) ? this.player_.currentResolution() : null ;
|
||||
if ( selection ) {
|
||||
this.selected(this.options_.label === selection.label);
|
||||
}
|
||||
};
|
||||
MenuItem.registerComponent('ResolutionMenuItem', ResolutionMenuItem);
|
||||
|
||||
|
@ -56,15 +58,22 @@
|
|||
MenuButton.call(this, player, options);
|
||||
this.el().setAttribute('aria-label','Quality');
|
||||
this.controlText('Quality');
|
||||
|
||||
if(options.dynamicLabel){
|
||||
videojs.addClass(this.label, 'vjs-resolution-button-label');
|
||||
videojs.dom.addClass(this.label, 'vjs-resolution-button-label');
|
||||
this.el().appendChild(this.label);
|
||||
}else{
|
||||
var staticLabel = document.createElement('span');
|
||||
videojs.addClass(staticLabel, 'vjs-menu-icon');
|
||||
videojs.dom.addClass(staticLabel, 'vjs-menu-icon');
|
||||
this.el().appendChild(staticLabel);
|
||||
}
|
||||
|
||||
// Make hover on resolution button
|
||||
this.el().addEventListener('mouseover', function(e) {
|
||||
videojs.dom.addClass(this, 'vjs-hover');
|
||||
});
|
||||
|
||||
// force update of resolution to change label
|
||||
player.on('resolutionchange', videojs.bind(this, this.update));
|
||||
player.on('updateSources', videojs.bind( this, this.update ) );
|
||||
}
|
||||
} );
|
||||
|
@ -94,6 +103,7 @@
|
|||
return MenuButton.prototype.update.call(this);
|
||||
};
|
||||
ResolutionMenuButton.prototype.buildCSSClass = function(){
|
||||
videojs.dom.addClass(this.el(), 'vjs-resolution-button');
|
||||
return MenuButton.prototype.buildCSSClass.call( this ) + ' vjs-resolution-button';
|
||||
};
|
||||
MenuButton.registerComponent('ResolutionMenuButton', ResolutionMenuButton);
|
||||
|
@ -151,7 +161,6 @@
|
|||
*/
|
||||
player.currentResolution = function(label, customSourcePicker){
|
||||
if(label == null) { return this.currentResolutionState; }
|
||||
|
||||
// Lookup sources for label
|
||||
if(!this.groupedSrc || !this.groupedSrc.label || !this.groupedSrc.label[label]){
|
||||
return;
|
||||
|
@ -181,7 +190,8 @@
|
|||
player.handleTechSeeked_();
|
||||
if(!isPaused){
|
||||
// Start playing and hide loadingSpinner (flash issue ?)
|
||||
player.play().handleTechSeeked_();
|
||||
player.play();
|
||||
player.handleTechSeeked_();
|
||||
}
|
||||
player.trigger('resolutionchange');
|
||||
});
|
||||
|
@ -362,6 +372,6 @@
|
|||
};
|
||||
|
||||
// register the plugin
|
||||
videojs.plugin('videoJsResolutionSwitcher', videoJsResolutionSwitcher);
|
||||
videojs.registerPlugin('videoJsResolutionSwitcher', videoJsResolutionSwitcher);
|
||||
})(window, videojs);
|
||||
})();
|
||||
|
|
|
@ -42,11 +42,11 @@
|
|||
"grunt-contrib-qunit": "^1.1",
|
||||
"grunt-contrib-uglify": "^1.0",
|
||||
"grunt-contrib-watch": "^1.0",
|
||||
"video.js": "^5.8",
|
||||
"video.js": "^7.4.1",
|
||||
"qunitjs": "^1.22",
|
||||
"videojs-youtube": "^2.0.8"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"video.js": "^5.8"
|
||||
"video.js": "^7.4.1"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue