lib update

This commit is contained in:
Kasper Moskwiak 2015-08-20 18:05:19 +02:00
parent c7462fb90b
commit bb6f406b69
4 changed files with 44 additions and 11 deletions

View file

@ -69,7 +69,8 @@
fluid: true, fluid: true,
plugins: { plugins: {
videoJsResolutionSwitcher: { videoJsResolutionSwitcher: {
default: 'low' // Default resolution [{Number}, 'low', 'high'] default: 'low', // Default resolution [{Number}, 'low', 'high'],
dynamicLabel: true
} }
} }
}, function(){ }, function(){
@ -92,7 +93,7 @@
player.on('resolutionchange', function(){ player.on('resolutionchange', function(){
console.info('Source changed to %s', player.src()) console.info('Source changed to %s', player.src())
}) })
}).videoJsResolutionSwitcher(); })
</script> </script>

View file

@ -1,10 +1,24 @@
.vjs-resolution-button { .vjs-resolution-button {
color: #ccc; color: #ccc;
font-family: VideoJS font-family: VideoJS;
} }
.vjs-resolution-button:before { .vjs-resolution-button .vjs-resolution-button-staticlabel:before {
content: '\f110' content: '\f110';
font-size: 1.8em;
line-height: 1.67;
}
.vjs-resolution-button .vjs-resolution-button-label {
font-size: 1.2em;
line-height: 2.50em;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
text-align: center;
box-sizing: inherit;
} }
.vjs-resolution-button ul.vjs-menu-content { .vjs-resolution-button ul.vjs-menu-content {

View file

@ -14,7 +14,10 @@
*/ */
videoJsResolutionSwitcher = function(options) { videoJsResolutionSwitcher = function(options) {
var settings = videojs.mergeOptions(defaults, options), var settings = videojs.mergeOptions(defaults, options),
player = this; player = this,
label = document.createElement('span');
label.classList.add('vjs-resolution-button-label')
/* /*
* Resolution menu item * Resolution menu item
@ -36,6 +39,8 @@
// Remember player state // Remember player state
var currentTime = player.currentTime() var currentTime = player.currentTime()
var isPaused = player.paused() var isPaused = player.paused()
// Change menu button label
label.innerHTML = this.options_.label;
// Change player source and wait for loadedmetadata event, then play video // Change player source and wait for loadedmetadata event, then play video
player.src({src: this.src, type: this.type}).one( 'loadedmetadata', function() { player.src({src: this.src, type: this.type}).one( 'loadedmetadata', function() {
player.currentTime(currentTime) player.currentTime(currentTime)
@ -54,7 +59,15 @@
constructor: function(player, options){ constructor: function(player, options){
this.sources = options.sources; this.sources = options.sources;
MenuButton.call(this, player, options); MenuButton.call(this, player, options);
this.controlText('Quality') this.controlText('Quality');
if(settings.dynamicLabel){
this.el().appendChild(label)
}else{
var staticLabel = document.createElement('span')
staticLabel.classList.add('vjs-resolution-button-staticlabel')
this.el().appendChild(staticLabel)
}
}, },
createItems: function(){ createItems: function(){
var sources = this.sources; var sources = this.sources;
@ -79,13 +92,15 @@
player.controlBar.resolutionSwitcher.dispose() player.controlBar.resolutionSwitcher.dispose()
delete player.controlBar.resolutionSwitcher delete player.controlBar.resolutionSwitcher
} }
//Sort sourcec //Sort sources
src = src.sort(compareResolutions) src = src.sort(compareResolutions)
groupedSrc = bucketSources(src) groupedSrc = bucketSources(src)
var menuButton = new ResolutionMenuButton(player, { sources: src }); var menuButton = new ResolutionMenuButton(player, { sources: src });
menuButton.el().classList.add('vjs-resolution-button') menuButton.el().classList.add('vjs-resolution-button')
player.controlBar.resolutionSwitcher = player.controlBar.addChild(menuButton) player.controlBar.resolutionSwitcher = player.controlBar.addChild(menuButton)
player.src(chooseSrc(src)); var newSource = chooseSrc(src)
label.innerHTML = newSource.label
player.src(newSource);
} }
/** /**
@ -130,7 +145,7 @@
if(settings.default === 'low'){ return src[src.length - 1] } if(settings.default === 'low'){ return src[src.length - 1] }
if(settings.default === 'high'){ return src[0] } if(settings.default === 'high'){ return src[0] }
if(groupedSrc.res[settings.default]){ return groupedSrc.res[settings.default][0] } if(groupedSrc.res[settings.default]){ return groupedSrc.res[settings.default][0] }
return src return src[src.length - 1]
} }
// Create resolution switcher for videos form <source> tag inside <video> // Create resolution switcher for videos form <source> tag inside <video>

View file

@ -15,5 +15,8 @@
"bugs": { "bugs": {
"url": "https://github.com/kmoskwiak/videojs-resolution-switcher/issues" "url": "https://github.com/kmoskwiak/videojs-resolution-switcher/issues"
}, },
"homepage": "https://github.com/kmoskwiak/videojs-resolution-switcher#readme" "homepage": "https://github.com/kmoskwiak/videojs-resolution-switcher#readme",
"dependencies": {
"videojs-resolution-switcher": "git+https://github.com/kmoskwiak/videojs-resolution-switcher.git"
}
} }