diff options
author | Sam Potts <sam@potts.es> | 2018-06-12 11:13:34 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-12 11:13:34 +1000 |
commit | 0b09b8ee6fc2212aa15d0d81999448eea62050ca (patch) | |
tree | 5d835cb0179850875450d72ba2c58edf27edbdff /src/js/plugins/youtube.js | |
parent | cd14c3086d2a34548bb51570c368b6e080ecb944 (diff) | |
parent | db95b3234fd38e5dd71d00876c925514960e63fc (diff) | |
download | plyr-0b09b8ee6fc2212aa15d0d81999448eea62050ca.tar.lz plyr-0b09b8ee6fc2212aa15d0d81999448eea62050ca.tar.xz plyr-0b09b8ee6fc2212aa15d0d81999448eea62050ca.zip |
Merge pull request #1027 from friday/quality
Minor code improvements for quality switching
Diffstat (limited to 'src/js/plugins/youtube.js')
-rw-r--r-- | src/js/plugins/youtube.js | 74 |
1 files changed, 20 insertions, 54 deletions
diff --git a/src/js/plugins/youtube.js b/src/js/plugins/youtube.js index 9b067c8a..f7458bcb 100644 --- a/src/js/plugins/youtube.js +++ b/src/js/plugins/youtube.js @@ -8,52 +8,26 @@ import utils from './../utils'; // Standardise YouTube quality unit function mapQualityUnit(input) { - switch (input) { - case 'hd2160': - return 2160; - - case 2160: - return 'hd2160'; - - case 'hd1440': - return 1440; - - case 1440: - return 'hd1440'; - - case 'hd1080': - return 1080; - - case 1080: - return 'hd1080'; - - case 'hd720': - return 720; - - case 720: - return 'hd720'; - - case 'large': - return 480; - - case 480: - return 'large'; - - case 'medium': - return 360; - - case 360: - return 'medium'; - - case 'small': - return 240; - - case 240: - return 'small'; - - default: - return 'default'; + const qualities = { + hd2160: 2160, + hd1440: 1440, + hd1080: 1080, + hd720: 720, + large: 480, + medium: 360, + small: 240, + tiny: 144, + }; + + const entry = Object.entries(qualities) + .find(entry => entry.includes(input)); + + if (entry) { + // Get the match corresponding to the input + return entry.find(value => value !== input); } + + return 'default'; } function mapQualityUnits(levels) { @@ -328,15 +302,7 @@ const youtube = { return mapQualityUnit(instance.getPlaybackQuality()); }, set(input) { - const quality = input; - - // Set via API - instance.setPlaybackQuality(mapQualityUnit(quality)); - - // Trigger request event - utils.dispatchEvent.call(player, player.media, 'qualityrequested', false, { - quality, - }); + instance.setPlaybackQuality(mapQualityUnit(input)); }, }); |