diff options
| author | Perflyst <mail@perflyst.de> | 2020-12-23 20:36:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-23 20:36:13 +0100 |
| commit | eeeecf9763bc0ee0f34b87e67c7ce02d431a4b84 (patch) | |
| tree | a19c09301ccbdd5c1afdcbd211c51205cd0b4624 /assets | |
| parent | 8df591e8d4fb46246e8da8f89d31659ae36da3c7 (diff) | |
| parent | eed78c960d01a6945403d82ec262087e9da0b8e3 (diff) | |
| download | invidious-eeeecf9763bc0ee0f34b87e67c7ce02d431a4b84.tar.gz invidious-eeeecf9763bc0ee0f34b87e67c7ce02d431a4b84.tar.bz2 invidious-eeeecf9763bc0ee0f34b87e67c7ce02d431a4b84.zip | |
Merge pull request #1572 from saltycrys/add-dash-quality-preference
Add DASH quality preference
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/js/player.js | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/assets/js/player.js b/assets/js/player.js index a6b35d35..fcba43d8 100644 --- a/assets/js/player.js +++ b/assets/js/player.js @@ -154,6 +154,35 @@ if (video_data.params.autoplay) { if (!video_data.params.listen && video_data.params.quality === 'dash') { player.httpSourceSelector(); + + if (video_data.params.quality_dash != "auto") { + player.ready(() => { + player.on("loadedmetadata", () => { + const qualityLevels = Array.from(player.qualityLevels()).sort((a, b) => a.height - b.height); + let targetQualityLevel; + switch (video_data.params.quality_dash) { + case "best": + targetQualityLevel = qualityLevels.length - 1; + break; + case "worst": + targetQualityLevel = 0; + break; + default: + const targetHeight = Number.parseInt(video_data.params.quality_dash, 10); + for (let i = 0; i < qualityLevels.length; i++) { + if (qualityLevels[i].height <= targetHeight) { + targetQualityLevel = i; + } else { + break; + } + } + } + for (let i = 0; i < qualityLevels.length; i++) { + qualityLevels[i].enabled = (i == targetQualityLevel); + } + }); + }); + } } player.vttThumbnails({ @@ -510,4 +539,6 @@ window.addEventListener('keydown', e => { }()); // Since videojs-share can sometimes be blocked, we defer it until last -player.share(shareOptions); +if (player.share) { + player.share(shareOptions); +} |
