mirror of
https://github.com/kmoskwiak/videojs-resolution-switcher.git
synced 2025-10-03 09:49:21 +02:00
Merge branch 'current-res-test'
This commit is contained in:
commit
3bd9d52002
1 changed files with 11 additions and 7 deletions
|
@ -22,11 +22,14 @@
|
||||||
currentResolution = {}, // stores current resolution
|
currentResolution = {}, // stores current resolution
|
||||||
menuItemsHolder = {}; // stores menuItems
|
menuItemsHolder = {}; // stores menuItems
|
||||||
|
|
||||||
function setSourcesSanitized(player, sources, label) {
|
function setSourcesSanitized(player, sources, label, customSourcePicker) {
|
||||||
currentResolution = {
|
currentResolution = {
|
||||||
label: label,
|
label: label,
|
||||||
sources: sources
|
sources: sources
|
||||||
};
|
};
|
||||||
|
if(typeof customSourcePicker === 'function'){
|
||||||
|
return customSourcePicker(player, sources, label);
|
||||||
|
}
|
||||||
return player.src(sources.map(function(src) {
|
return player.src(sources.map(function(src) {
|
||||||
return {src: src.src, type: src.type, res: src.res};
|
return {src: src.src, type: src.type, res: src.res};
|
||||||
}));
|
}));
|
||||||
|
@ -58,7 +61,7 @@
|
||||||
this.label.innerHTML = this.options_.label;
|
this.label.innerHTML = this.options_.label;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onClick: function(){
|
onClick: function(customSourcePicker){
|
||||||
this.onClickListener(this);
|
this.onClickListener(this);
|
||||||
// Remember player state
|
// Remember player state
|
||||||
var currentTime = this.player_.currentTime();
|
var currentTime = this.player_.currentTime();
|
||||||
|
@ -71,7 +74,7 @@
|
||||||
// Change player source and wait for loadeddata event, then play video
|
// Change player source and wait for loadeddata event, then play video
|
||||||
// loadedmetadata doesn't work right now for flash.
|
// loadedmetadata doesn't work right now for flash.
|
||||||
// Probably because of https://github.com/videojs/video-js-swf/issues/124
|
// Probably because of https://github.com/videojs/video-js-swf/issues/124
|
||||||
setSourcesSanitized(this.player_, this.src, this.options_.label).one('loadeddata', function() {
|
setSourcesSanitized(this.player_, this.src, this.options_.label, customSourcePicker).one('loadeddata', function() {
|
||||||
this.player_.currentTime(currentTime);
|
this.player_.currentTime(currentTime);
|
||||||
this.player_.handleTechSeeked_();
|
this.player_.handleTechSeeked_();
|
||||||
if(!isPaused){
|
if(!isPaused){
|
||||||
|
@ -170,12 +173,13 @@
|
||||||
/**
|
/**
|
||||||
* Returns current resolution or sets one when label is specified
|
* Returns current resolution or sets one when label is specified
|
||||||
* @param {String} [label] label name
|
* @param {String} [label] label name
|
||||||
|
* @param {Function} [customSourcePicker] custom function to choose source. Takes 3 arguments: player, sources, label. Must return player object.
|
||||||
* @returns {Object} current resolution object {label: '', sources: []} if used as getter or player object if used as setter
|
* @returns {Object} current resolution object {label: '', sources: []} if used as getter or player object if used as setter
|
||||||
*/
|
*/
|
||||||
player.currentResolution = function(label){
|
player.currentResolution = function(label, customSourcePicker){
|
||||||
if(label == null) { return currentResolution; }
|
if(label == null) { return currentResolution; }
|
||||||
if(menuItemsHolder[label] != null){
|
if(menuItemsHolder[label] != null){
|
||||||
menuItemsHolder[label].onClick();
|
menuItemsHolder[label].onClick(customSourcePicker);
|
||||||
}
|
}
|
||||||
return player;
|
return player;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue