From 1cbbd10577b9f59a765467308f7204baf69aaa02 Mon Sep 17 00:00:00 2001 From: Kasper Moskwiak Date: Sat, 31 Oct 2015 19:38:36 +0100 Subject: [PATCH] get current resolution method --- lib/videojs-resolution-switcher.js | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/videojs-resolution-switcher.js b/lib/videojs-resolution-switcher.js index b61cc7d..0756f99 100644 --- a/lib/videojs-resolution-switcher.js +++ b/lib/videojs-resolution-switcher.js @@ -18,9 +18,14 @@ var defaults = {}, - videoJsResolutionSwitcher; + videoJsResolutionSwitcher, + currentResolution = {}; - function setSourcesSanitized(player, sources) { + function setSourcesSanitized(player, sources, label) { + currentResolution = { + label: label, + sources: sources + }; return player.src(sources.map(function(src) { return {src: src.src, type: src.type, res: src.res}; })); @@ -65,7 +70,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).one('loadeddata', function() { + setSourcesSanitized(this.player_, this.src, this.label).one('loadeddata', function() { this.player_.currentTime(currentTime); this.player_.handleTechSeeked_(); if(!isPaused){ @@ -135,7 +140,7 @@ label = document.createElement('span'); label.classList.add('vjs-resolution-button-label'); - + player.updateSrc = function(src){ //Return current src if src is not given if(!src){ return player.src(); } @@ -148,10 +153,18 @@ src = src.sort(compareResolutions); var groupedSrc = bucketSources(src); var choosen = chooseSrc(groupedSrc, src); - var menuButton = new ResolutionMenuButton(player, { sources: groupedSrc, initialySelectedLabel: choosen.label , initialySelectedRes: choosen.res}, settings, label); + var menuButton = new ResolutionMenuButton(player, { sources: groupedSrc, initialySelectedLabel: choosen.label , initialySelectedRes: choosen.res }, settings, label); menuButton.el().classList.add('vjs-resolution-button'); player.controlBar.resolutionSwitcher = player.controlBar.addChild(menuButton); - return setSourcesSanitized(player, choosen.sources); + return setSourcesSanitized(player, choosen.sources, choosen.label); + }; + + /** + * Returns current resolution + * @returns {Object} current resolution object {label: '', sources: []} + */ + player.currentResolution = function(){ + return currentResolution; }; /**