Merge pull request #1572 from saltycrys/add-dash-quality-preference

Add DASH quality preference
This commit is contained in:
Perflyst
2020-12-23 20:36:13 +01:00
committed by GitHub
6 changed files with 55 additions and 1 deletions

View File

@@ -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);
}