unified-video-framework 1.4.223 → 1.4.225
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/web/dist/WebPlayer.d.ts +9 -0
- package/packages/web/dist/WebPlayer.d.ts.map +1 -1
- package/packages/web/dist/WebPlayer.js +182 -9
- package/packages/web/dist/WebPlayer.js.map +1 -1
- package/packages/web/dist/react/WebPlayerView.d.ts +13 -0
- package/packages/web/dist/react/WebPlayerView.d.ts.map +1 -1
- package/packages/web/dist/react/WebPlayerView.js +6 -0
- package/packages/web/dist/react/WebPlayerView.js.map +1 -1
- package/packages/web/src/WebPlayer.ts +265 -10
- package/packages/web/src/react/WebPlayerView.tsx +20 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.225",
|
|
4
4
|
"description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
|
|
5
5
|
"main": "packages/core/dist/index.js",
|
|
6
6
|
"types": "packages/core/dist/index.d.ts",
|
|
@@ -76,6 +76,8 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
76
76
|
private chapterManager;
|
|
77
77
|
private coreChapterManager;
|
|
78
78
|
private chapterConfig;
|
|
79
|
+
private qualityFilter;
|
|
80
|
+
private premiumQualities;
|
|
79
81
|
private debugLog;
|
|
80
82
|
private debugError;
|
|
81
83
|
private debugWarn;
|
|
@@ -221,6 +223,11 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
221
223
|
private updateSettingsMenu;
|
|
222
224
|
private generateAccordionMenu;
|
|
223
225
|
private detectAvailableQualities;
|
|
226
|
+
private applyQualityFilter;
|
|
227
|
+
setQualityFilter(filter: any): void;
|
|
228
|
+
private isQualityPremium;
|
|
229
|
+
private isPremiumUser;
|
|
230
|
+
private handlePremiumQualityClick;
|
|
224
231
|
private detectAvailableSubtitles;
|
|
225
232
|
private setupSettingsEventListeners;
|
|
226
233
|
private toggleAccordionSection;
|
|
@@ -229,6 +236,8 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
229
236
|
private updateSettingsActiveStates;
|
|
230
237
|
private setPlaybackRateFromSettings;
|
|
231
238
|
private setQualityFromSettings;
|
|
239
|
+
private applyHLSQualityFilter;
|
|
240
|
+
private applyDASHQualityFilter;
|
|
232
241
|
private setSubtitle;
|
|
233
242
|
private _updateCastActiveTracks;
|
|
234
243
|
private onCastButtonClick;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,8 @@ export class WebPlayer extends BasePlayer {
|
|
|
79
79
|
this.chapterManager = null;
|
|
80
80
|
this.coreChapterManager = null;
|
|
81
81
|
this.chapterConfig = { enabled: false };
|
|
82
|
+
this.qualityFilter = null;
|
|
83
|
+
this.premiumQualities = null;
|
|
82
84
|
this.autoplayAttempted = false;
|
|
83
85
|
this.clickToUnmuteHandler = null;
|
|
84
86
|
}
|
|
@@ -141,6 +143,14 @@ export class WebPlayer extends BasePlayer {
|
|
|
141
143
|
else {
|
|
142
144
|
console.log('No chapter config found, chapters disabled');
|
|
143
145
|
}
|
|
146
|
+
if (config && config.qualityFilter) {
|
|
147
|
+
console.log('Quality filter config found:', config.qualityFilter);
|
|
148
|
+
this.qualityFilter = config.qualityFilter;
|
|
149
|
+
}
|
|
150
|
+
if (config && config.premiumQualities) {
|
|
151
|
+
console.log('Premium qualities config found:', config.premiumQualities);
|
|
152
|
+
this.premiumQualities = config.premiumQualities;
|
|
153
|
+
}
|
|
144
154
|
await super.initialize(container, config);
|
|
145
155
|
}
|
|
146
156
|
async setupPlayer() {
|
|
@@ -7536,7 +7546,16 @@ export class WebPlayer extends BasePlayer {
|
|
|
7536
7546
|
<div class="uvf-accordion-content" data-section="quality">`;
|
|
7537
7547
|
this.availableQualities.forEach(quality => {
|
|
7538
7548
|
const isActive = quality.value === this.currentQuality ? 'active' : '';
|
|
7539
|
-
|
|
7549
|
+
const isPremium = this.isQualityPremium(quality);
|
|
7550
|
+
const isLocked = isPremium && !this.isPremiumUser();
|
|
7551
|
+
const qualityHeight = quality.height || 0;
|
|
7552
|
+
if (isLocked) {
|
|
7553
|
+
const premiumLabel = this.premiumQualities?.premiumLabel || '🔒 Premium';
|
|
7554
|
+
menuHTML += `<div class="uvf-settings-option quality-option premium-locked ${isActive}" data-quality="${quality.value}" data-quality-height="${qualityHeight}" data-quality-label="${quality.label}">${quality.label} <span style="margin-left: 4px; opacity: 0.7; font-size: 11px;">${premiumLabel}</span></div>`;
|
|
7555
|
+
}
|
|
7556
|
+
else {
|
|
7557
|
+
menuHTML += `<div class="uvf-settings-option quality-option ${isActive}" data-quality="${quality.value}">${quality.label}</div>`;
|
|
7558
|
+
}
|
|
7540
7559
|
});
|
|
7541
7560
|
menuHTML += `</div></div>`;
|
|
7542
7561
|
}
|
|
@@ -7577,12 +7596,14 @@ export class WebPlayer extends BasePlayer {
|
|
|
7577
7596
|
}
|
|
7578
7597
|
detectAvailableQualities() {
|
|
7579
7598
|
this.availableQualities = [{ value: 'auto', label: 'Auto' }];
|
|
7599
|
+
let detectedQualities = [];
|
|
7580
7600
|
if (this.hls && this.hls.levels) {
|
|
7581
7601
|
this.hls.levels.forEach((level, index) => {
|
|
7582
7602
|
if (level.height) {
|
|
7583
|
-
|
|
7603
|
+
detectedQualities.push({
|
|
7584
7604
|
value: index.toString(),
|
|
7585
|
-
label: `${level.height}p
|
|
7605
|
+
label: `${level.height}p`,
|
|
7606
|
+
height: level.height
|
|
7586
7607
|
});
|
|
7587
7608
|
}
|
|
7588
7609
|
});
|
|
@@ -7592,9 +7613,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
7592
7613
|
const videoQualities = this.dash.getBitrateInfoListFor('video');
|
|
7593
7614
|
videoQualities.forEach((quality, index) => {
|
|
7594
7615
|
if (quality.height) {
|
|
7595
|
-
|
|
7616
|
+
detectedQualities.push({
|
|
7596
7617
|
value: index.toString(),
|
|
7597
|
-
label: `${quality.height}p
|
|
7618
|
+
label: `${quality.height}p`,
|
|
7619
|
+
height: quality.height
|
|
7598
7620
|
});
|
|
7599
7621
|
}
|
|
7600
7622
|
});
|
|
@@ -7608,13 +7630,81 @@ export class WebPlayer extends BasePlayer {
|
|
|
7608
7630
|
const commonQualities = [2160, 1440, 1080, 720, 480, 360];
|
|
7609
7631
|
commonQualities.forEach(quality => {
|
|
7610
7632
|
if (quality <= height) {
|
|
7611
|
-
|
|
7633
|
+
detectedQualities.push({
|
|
7612
7634
|
value: quality.toString(),
|
|
7613
|
-
label: `${quality}p
|
|
7635
|
+
label: `${quality}p`,
|
|
7636
|
+
height: quality
|
|
7614
7637
|
});
|
|
7615
7638
|
}
|
|
7616
7639
|
});
|
|
7617
7640
|
}
|
|
7641
|
+
if (this.qualityFilter) {
|
|
7642
|
+
detectedQualities = this.applyQualityFilter(detectedQualities);
|
|
7643
|
+
}
|
|
7644
|
+
this.availableQualities.push(...detectedQualities);
|
|
7645
|
+
}
|
|
7646
|
+
applyQualityFilter(qualities) {
|
|
7647
|
+
let filtered = [...qualities];
|
|
7648
|
+
const filter = this.qualityFilter;
|
|
7649
|
+
if (filter.allowedHeights && filter.allowedHeights.length > 0) {
|
|
7650
|
+
filtered = filtered.filter(q => q.height && filter.allowedHeights.includes(q.height));
|
|
7651
|
+
}
|
|
7652
|
+
if (filter.allowedLabels && filter.allowedLabels.length > 0) {
|
|
7653
|
+
filtered = filtered.filter(q => filter.allowedLabels.includes(q.label));
|
|
7654
|
+
}
|
|
7655
|
+
if (filter.minHeight !== undefined) {
|
|
7656
|
+
filtered = filtered.filter(q => q.height && q.height >= filter.minHeight);
|
|
7657
|
+
}
|
|
7658
|
+
if (filter.maxHeight !== undefined) {
|
|
7659
|
+
filtered = filtered.filter(q => q.height && q.height <= filter.maxHeight);
|
|
7660
|
+
}
|
|
7661
|
+
return filtered;
|
|
7662
|
+
}
|
|
7663
|
+
setQualityFilter(filter) {
|
|
7664
|
+
this.qualityFilter = filter;
|
|
7665
|
+
if (this.useCustomControls) {
|
|
7666
|
+
this.updateSettingsMenu();
|
|
7667
|
+
}
|
|
7668
|
+
}
|
|
7669
|
+
isQualityPremium(quality) {
|
|
7670
|
+
if (!this.premiumQualities || !this.premiumQualities.enabled) {
|
|
7671
|
+
return false;
|
|
7672
|
+
}
|
|
7673
|
+
const config = this.premiumQualities;
|
|
7674
|
+
const height = quality.height || 0;
|
|
7675
|
+
const label = quality.label || '';
|
|
7676
|
+
if (config.requiredHeights && config.requiredHeights.length > 0) {
|
|
7677
|
+
if (config.requiredHeights.includes(height))
|
|
7678
|
+
return true;
|
|
7679
|
+
}
|
|
7680
|
+
if (config.requiredLabels && config.requiredLabels.length > 0) {
|
|
7681
|
+
if (config.requiredLabels.includes(label))
|
|
7682
|
+
return true;
|
|
7683
|
+
}
|
|
7684
|
+
if (config.minPremiumHeight !== undefined) {
|
|
7685
|
+
if (height >= config.minPremiumHeight)
|
|
7686
|
+
return true;
|
|
7687
|
+
}
|
|
7688
|
+
return false;
|
|
7689
|
+
}
|
|
7690
|
+
isPremiumUser() {
|
|
7691
|
+
return this.premiumQualities?.isPremiumUser === true;
|
|
7692
|
+
}
|
|
7693
|
+
handlePremiumQualityClick(element) {
|
|
7694
|
+
const height = parseInt(element.dataset.qualityHeight || '0');
|
|
7695
|
+
const label = element.dataset.qualityLabel || '';
|
|
7696
|
+
this.debugLog(`Premium quality clicked: ${label} (${height}p)`);
|
|
7697
|
+
if (this.premiumQualities?.onPremiumQualityClick) {
|
|
7698
|
+
this.premiumQualities.onPremiumQualityClick({ height, label });
|
|
7699
|
+
}
|
|
7700
|
+
const message = this.premiumQualities?.premiumLabel || 'Premium';
|
|
7701
|
+
this.showNotification(`${label} requires ${message.replace('🔒 ', '')}`);
|
|
7702
|
+
if (this.premiumQualities?.unlockUrl) {
|
|
7703
|
+
setTimeout(() => {
|
|
7704
|
+
window.location.href = this.premiumQualities.unlockUrl;
|
|
7705
|
+
}, 1500);
|
|
7706
|
+
}
|
|
7707
|
+
this.hideSettingsMenu();
|
|
7618
7708
|
}
|
|
7619
7709
|
detectAvailableSubtitles() {
|
|
7620
7710
|
this.availableSubtitles = [{ value: 'off', label: 'Off' }];
|
|
@@ -7663,7 +7753,12 @@ export class WebPlayer extends BasePlayer {
|
|
|
7663
7753
|
settingsMenu.querySelectorAll('.quality-option').forEach(option => {
|
|
7664
7754
|
option.addEventListener('click', (e) => {
|
|
7665
7755
|
e.stopPropagation();
|
|
7666
|
-
const
|
|
7756
|
+
const target = e.target;
|
|
7757
|
+
const quality = target.dataset.quality || 'auto';
|
|
7758
|
+
if (target.classList.contains('premium-locked')) {
|
|
7759
|
+
this.handlePremiumQualityClick(target);
|
|
7760
|
+
return;
|
|
7761
|
+
}
|
|
7667
7762
|
this.setQualityFromSettings(quality);
|
|
7668
7763
|
this.updateAccordionAfterSelection('quality');
|
|
7669
7764
|
});
|
|
@@ -7735,10 +7830,18 @@ export class WebPlayer extends BasePlayer {
|
|
|
7735
7830
|
this.currentQuality = quality;
|
|
7736
7831
|
if (quality === 'auto') {
|
|
7737
7832
|
if (this.hls) {
|
|
7738
|
-
this.
|
|
7833
|
+
if (this.qualityFilter) {
|
|
7834
|
+
this.applyHLSQualityFilter();
|
|
7835
|
+
}
|
|
7836
|
+
else {
|
|
7837
|
+
this.hls.currentLevel = -1;
|
|
7838
|
+
}
|
|
7739
7839
|
}
|
|
7740
7840
|
else if (this.dash) {
|
|
7741
7841
|
this.dash.setAutoSwitchQualityFor('video', true);
|
|
7842
|
+
if (this.qualityFilter) {
|
|
7843
|
+
this.applyDASHQualityFilter();
|
|
7844
|
+
}
|
|
7742
7845
|
}
|
|
7743
7846
|
}
|
|
7744
7847
|
else {
|
|
@@ -7753,6 +7856,76 @@ export class WebPlayer extends BasePlayer {
|
|
|
7753
7856
|
}
|
|
7754
7857
|
this.debugLog(`Quality set to ${quality}`);
|
|
7755
7858
|
}
|
|
7859
|
+
applyHLSQualityFilter() {
|
|
7860
|
+
if (!this.hls || !this.hls.levels || !this.qualityFilter)
|
|
7861
|
+
return;
|
|
7862
|
+
const filter = this.qualityFilter;
|
|
7863
|
+
const allowedLevels = [];
|
|
7864
|
+
this.hls.levels.forEach((level, index) => {
|
|
7865
|
+
let allowed = true;
|
|
7866
|
+
if (filter.allowedHeights && filter.allowedHeights.length > 0) {
|
|
7867
|
+
allowed = allowed && filter.allowedHeights.includes(level.height);
|
|
7868
|
+
}
|
|
7869
|
+
if (filter.minHeight !== undefined) {
|
|
7870
|
+
allowed = allowed && level.height >= filter.minHeight;
|
|
7871
|
+
}
|
|
7872
|
+
if (filter.maxHeight !== undefined) {
|
|
7873
|
+
allowed = allowed && level.height <= filter.maxHeight;
|
|
7874
|
+
}
|
|
7875
|
+
if (allowed) {
|
|
7876
|
+
allowedLevels.push(index);
|
|
7877
|
+
}
|
|
7878
|
+
});
|
|
7879
|
+
if (allowedLevels.length > 0) {
|
|
7880
|
+
this.hls.autoLevelCapping = Math.max(...allowedLevels);
|
|
7881
|
+
this.hls.minAutoLevel = Math.min(...allowedLevels);
|
|
7882
|
+
this.hls.currentLevel = -1;
|
|
7883
|
+
this.debugLog(`Auto quality limited to levels: ${allowedLevels.join(', ')}`);
|
|
7884
|
+
}
|
|
7885
|
+
else {
|
|
7886
|
+
this.hls.currentLevel = -1;
|
|
7887
|
+
}
|
|
7888
|
+
}
|
|
7889
|
+
applyDASHQualityFilter() {
|
|
7890
|
+
if (!this.dash || !this.qualityFilter)
|
|
7891
|
+
return;
|
|
7892
|
+
try {
|
|
7893
|
+
const filter = this.qualityFilter;
|
|
7894
|
+
const videoQualities = this.dash.getBitrateInfoListFor('video');
|
|
7895
|
+
const allowedIndices = [];
|
|
7896
|
+
videoQualities.forEach((quality, index) => {
|
|
7897
|
+
let allowed = true;
|
|
7898
|
+
if (filter.allowedHeights && filter.allowedHeights.length > 0) {
|
|
7899
|
+
allowed = allowed && filter.allowedHeights.includes(quality.height);
|
|
7900
|
+
}
|
|
7901
|
+
if (filter.minHeight !== undefined) {
|
|
7902
|
+
allowed = allowed && quality.height >= filter.minHeight;
|
|
7903
|
+
}
|
|
7904
|
+
if (filter.maxHeight !== undefined) {
|
|
7905
|
+
allowed = allowed && quality.height <= filter.maxHeight;
|
|
7906
|
+
}
|
|
7907
|
+
if (allowed) {
|
|
7908
|
+
allowedIndices.push(index);
|
|
7909
|
+
}
|
|
7910
|
+
});
|
|
7911
|
+
if (allowedIndices.length > 0) {
|
|
7912
|
+
const settings = {
|
|
7913
|
+
streaming: {
|
|
7914
|
+
abr: {
|
|
7915
|
+
limitBitrateByPortal: false,
|
|
7916
|
+
maxBitrate: { video: videoQualities[Math.max(...allowedIndices)].bitrate },
|
|
7917
|
+
minBitrate: { video: videoQualities[Math.min(...allowedIndices)].bitrate },
|
|
7918
|
+
}
|
|
7919
|
+
}
|
|
7920
|
+
};
|
|
7921
|
+
this.dash.updateSettings(settings);
|
|
7922
|
+
this.debugLog(`Auto quality limited to DASH indices: ${allowedIndices.join(', ')}`);
|
|
7923
|
+
}
|
|
7924
|
+
}
|
|
7925
|
+
catch (e) {
|
|
7926
|
+
this.debugError('Error applying DASH quality filter:', e);
|
|
7927
|
+
}
|
|
7928
|
+
}
|
|
7756
7929
|
setSubtitle(subtitle) {
|
|
7757
7930
|
this.currentSubtitle = subtitle;
|
|
7758
7931
|
if (subtitle === 'off') {
|