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
|
||||
menuItemsHolder = {}; // stores menuItems
|
||||
|
||||
function setSourcesSanitized(player, sources, label) {
|
||||
function setSourcesSanitized(player, sources, label, customSourcePicker) {
|
||||
currentResolution = {
|
||||
label: label,
|
||||
sources: sources
|
||||
};
|
||||
if(typeof customSourcePicker === 'function'){
|
||||
return customSourcePicker(player, sources, label);
|
||||
}
|
||||
return player.src(sources.map(function(src) {
|
||||
return {src: src.src, type: src.type, res: src.res};
|
||||
}));
|
||||
|
@ -58,7 +61,7 @@
|
|||
this.label.innerHTML = this.options_.label;
|
||||
}
|
||||
},
|
||||
onClick: function(){
|
||||
onClick: function(customSourcePicker){
|
||||
this.onClickListener(this);
|
||||
// Remember player state
|
||||
var currentTime = this.player_.currentTime();
|
||||
|
@ -71,7 +74,7 @@
|
|||
// Change player source and wait for loadeddata event, then play video
|
||||
// loadedmetadata doesn't work right now for flash.
|
||||
// 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_.handleTechSeeked_();
|
||||
if(!isPaused){
|
||||
|
@ -169,13 +172,14 @@
|
|||
|
||||
/**
|
||||
* Returns current resolution or sets one when label is specified
|
||||
* @param {String} [label] label name
|
||||
* @returns {Object} current resolution object {label: '', sources: []} if used as getter or player object if used as setter
|
||||
* @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
|
||||
*/
|
||||
player.currentResolution = function(label){
|
||||
player.currentResolution = function(label, customSourcePicker){
|
||||
if(label == null) { return currentResolution; }
|
||||
if(menuItemsHolder[label] != null){
|
||||
menuItemsHolder[label].onClick();
|
||||
menuItemsHolder[label].onClick(customSourcePicker);
|
||||
}
|
||||
return player;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue