unified-video-framework 1.4.486 → 1.4.488
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/core/dist/version.d.ts +1 -1
- package/packages/core/dist/version.js +1 -1
- package/packages/core/src/version.ts +1 -1
- package/packages/web/dist/WebPlayer.d.ts +2 -0
- package/packages/web/dist/WebPlayer.d.ts.map +1 -1
- package/packages/web/dist/WebPlayer.js +97 -14
- package/packages/web/dist/WebPlayer.js.map +1 -1
- package/packages/web/dist/utils/SrtConverter.d.ts.map +1 -1
- package/packages/web/dist/utils/SrtConverter.js +2 -2
- package/packages/web/dist/utils/SrtConverter.js.map +1 -1
- package/packages/web/src/WebPlayer.ts +126 -16
- package/packages/web/src/utils/SrtConverter.ts +2 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.488",
|
|
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",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "1.4.
|
|
1
|
+
export declare const VERSION = "1.4.488";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '1.4.
|
|
1
|
+
export const VERSION = '1.4.488';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '1.4.
|
|
1
|
+
export const VERSION = '1.4.488';
|
|
@@ -116,6 +116,7 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
116
116
|
private currentThumbnailUrl;
|
|
117
117
|
private thumbnailPreviewEnabled;
|
|
118
118
|
private subtitleBlobUrls;
|
|
119
|
+
private subtitleOverlay;
|
|
119
120
|
private debugLog;
|
|
120
121
|
private debugError;
|
|
121
122
|
private debugWarn;
|
|
@@ -161,6 +162,7 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
161
162
|
private updateYouTubeProgressBar;
|
|
162
163
|
protected loadScript(src: string): Promise<void>;
|
|
163
164
|
private loadSubtitles;
|
|
165
|
+
private updateSubtitleOverlay;
|
|
164
166
|
private isAbortPlayError;
|
|
165
167
|
private isAutoplayRestrictionError;
|
|
166
168
|
private detectAutoplayCapabilities;
|
|
@@ -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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"}
|
|
@@ -119,6 +119,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
119
119
|
this.currentThumbnailUrl = null;
|
|
120
120
|
this.thumbnailPreviewEnabled = false;
|
|
121
121
|
this.subtitleBlobUrls = [];
|
|
122
|
+
this.subtitleOverlay = null;
|
|
122
123
|
this.autoplayAttempted = false;
|
|
123
124
|
this.youtubePlayer = null;
|
|
124
125
|
this.youtubePlayerReady = false;
|
|
@@ -394,6 +395,9 @@ export class WebPlayer extends BasePlayer {
|
|
|
394
395
|
if (this.config.crossOrigin) {
|
|
395
396
|
this.video.crossOrigin = this.config.crossOrigin;
|
|
396
397
|
}
|
|
398
|
+
this.subtitleOverlay = document.createElement('div');
|
|
399
|
+
this.subtitleOverlay.className = 'uvf-subtitle-overlay';
|
|
400
|
+
videoContainer.appendChild(this.subtitleOverlay);
|
|
397
401
|
this.watermarkCanvas = document.createElement('canvas');
|
|
398
402
|
this.watermarkCanvas.className = 'uvf-watermark-layer';
|
|
399
403
|
this.flashTickerContainer = document.createElement('div');
|
|
@@ -420,6 +424,11 @@ export class WebPlayer extends BasePlayer {
|
|
|
420
424
|
}
|
|
421
425
|
this.container.innerHTML = '';
|
|
422
426
|
this.container.appendChild(wrapper);
|
|
427
|
+
requestAnimationFrame(() => {
|
|
428
|
+
if (this.controlsContainer && this.playerWrapper) {
|
|
429
|
+
this.playerWrapper.style.setProperty('--uvf-ctrl-height', `${this.controlsContainer.getBoundingClientRect().height}px`);
|
|
430
|
+
}
|
|
431
|
+
});
|
|
423
432
|
this.applyScrollbarPreferencesFromDataset();
|
|
424
433
|
this.setupVideoEventListeners();
|
|
425
434
|
this.setupControlsEventListeners();
|
|
@@ -1731,6 +1740,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
1731
1740
|
const track = document.createElement('track');
|
|
1732
1741
|
track.kind = subtitle.kind || 'subtitles';
|
|
1733
1742
|
track.label = subtitle.label;
|
|
1743
|
+
track.srclang = subtitle.language;
|
|
1734
1744
|
let trackUrl = subtitle.url || '';
|
|
1735
1745
|
if (trackUrl.toLowerCase().endsWith('.srt')) {
|
|
1736
1746
|
try {
|
|
@@ -1753,8 +1763,45 @@ export class WebPlayer extends BasePlayer {
|
|
|
1753
1763
|
track.default = true;
|
|
1754
1764
|
}
|
|
1755
1765
|
this.video.appendChild(track);
|
|
1766
|
+
track.addEventListener('load', () => {
|
|
1767
|
+
if (track.track) {
|
|
1768
|
+
track.track.addEventListener('cuechange', () => this.updateSubtitleOverlay());
|
|
1769
|
+
}
|
|
1770
|
+
});
|
|
1771
|
+
if (track.track) {
|
|
1772
|
+
track.track.addEventListener('cuechange', () => this.updateSubtitleOverlay());
|
|
1773
|
+
}
|
|
1756
1774
|
});
|
|
1757
1775
|
}
|
|
1776
|
+
updateSubtitleOverlay() {
|
|
1777
|
+
if (!this.subtitleOverlay || !this.video)
|
|
1778
|
+
return;
|
|
1779
|
+
const tracks = this.video.textTracks;
|
|
1780
|
+
let activeCues = [];
|
|
1781
|
+
if (this.currentSubtitleIndex >= 0 && this.currentSubtitleIndex < tracks.length) {
|
|
1782
|
+
const activeTrack = tracks[this.currentSubtitleIndex];
|
|
1783
|
+
if (activeTrack && activeTrack.activeCues) {
|
|
1784
|
+
activeCues = Array.from(activeTrack.activeCues);
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1787
|
+
if (activeCues.length > 0) {
|
|
1788
|
+
const sanitize = (raw) => raw
|
|
1789
|
+
.replace(/&/g, '&')
|
|
1790
|
+
.replace(/</g, '\x00LT\x00')
|
|
1791
|
+
.replace(/>/g, '\x00GT\x00')
|
|
1792
|
+
.replace(/\x00LT\x00(\/?(b|i|u|ruby|rt))\x00GT\x00/gi, '<$1>')
|
|
1793
|
+
.replace(/\x00LT\x00/g, '<')
|
|
1794
|
+
.replace(/\x00GT\x00/g, '>')
|
|
1795
|
+
.replace(/\n/g, '<br>');
|
|
1796
|
+
const text = activeCues.map(cue => sanitize(cue.text)).join('<br>');
|
|
1797
|
+
this.subtitleOverlay.innerHTML = `<span>${text}</span>`;
|
|
1798
|
+
this.subtitleOverlay.style.display = 'block';
|
|
1799
|
+
}
|
|
1800
|
+
else {
|
|
1801
|
+
this.subtitleOverlay.innerHTML = '';
|
|
1802
|
+
this.subtitleOverlay.style.display = 'none';
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1758
1805
|
isAbortPlayError(err) {
|
|
1759
1806
|
return !!err && ((err.name === 'AbortError') ||
|
|
1760
1807
|
(typeof err.message === 'string' && /interrupted by a call to pause\(\)/i.test(err.message)));
|
|
@@ -4264,20 +4311,25 @@ export class WebPlayer extends BasePlayer {
|
|
|
4264
4311
|
const tracks = this.video.textTracks;
|
|
4265
4312
|
for (let i = 0; i < tracks.length; i++) {
|
|
4266
4313
|
const textTrack = tracks[i];
|
|
4267
|
-
if (
|
|
4268
|
-
textTrack.mode = '
|
|
4314
|
+
if (i === this.currentSubtitleIndex) {
|
|
4315
|
+
textTrack.mode = 'hidden';
|
|
4269
4316
|
}
|
|
4270
4317
|
else {
|
|
4271
|
-
textTrack.mode = '
|
|
4318
|
+
textTrack.mode = 'disabled';
|
|
4272
4319
|
}
|
|
4273
4320
|
}
|
|
4321
|
+
this.updateSubtitleOverlay();
|
|
4274
4322
|
}
|
|
4275
4323
|
removeSubtitles() {
|
|
4276
4324
|
if (!this.video)
|
|
4277
4325
|
return;
|
|
4278
4326
|
const tracks = this.video.textTracks;
|
|
4279
4327
|
for (let i = 0; i < tracks.length; i++) {
|
|
4280
|
-
tracks[i].mode = '
|
|
4328
|
+
tracks[i].mode = 'disabled';
|
|
4329
|
+
}
|
|
4330
|
+
if (this.subtitleOverlay) {
|
|
4331
|
+
this.subtitleOverlay.innerHTML = '';
|
|
4332
|
+
this.subtitleOverlay.style.display = 'none';
|
|
4281
4333
|
}
|
|
4282
4334
|
}
|
|
4283
4335
|
injectStyles() {
|
|
@@ -4389,21 +4441,40 @@ export class WebPlayer extends BasePlayer {
|
|
|
4389
4441
|
object-fit: contain;
|
|
4390
4442
|
}
|
|
4391
4443
|
|
|
4392
|
-
.uvf-
|
|
4444
|
+
.uvf-subtitle-overlay {
|
|
4445
|
+
position: absolute;
|
|
4446
|
+
bottom: 25px;
|
|
4447
|
+
left: 50%;
|
|
4448
|
+
transform: translateX(-50%);
|
|
4449
|
+
width: 100%;
|
|
4450
|
+
max-width: 85%;
|
|
4451
|
+
text-align: center;
|
|
4452
|
+
z-index: 10;
|
|
4453
|
+
pointer-events: none;
|
|
4454
|
+
transition: bottom 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
4455
|
+
display: none;
|
|
4456
|
+
}
|
|
4457
|
+
|
|
4458
|
+
.uvf-player-wrapper.controls-visible .uvf-subtitle-overlay {
|
|
4459
|
+
/* --uvf-ctrl-height is set in JS by measuring the real controls bar height,
|
|
4460
|
+
so this stays pixel-perfect at every breakpoint / orientation / fullscreen state */
|
|
4461
|
+
bottom: calc(var(--uvf-ctrl-height, 0px) + 12px);
|
|
4462
|
+
}
|
|
4463
|
+
|
|
4464
|
+
.uvf-subtitle-overlay span {
|
|
4393
4465
|
background-color: rgba(0, 0, 0, 0.75);
|
|
4394
4466
|
color: #ffffff;
|
|
4467
|
+
padding: 4px 12px;
|
|
4468
|
+
border-radius: 4px;
|
|
4395
4469
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
4396
|
-
font-size:
|
|
4470
|
+
font-size: clamp(14px, 2vw, 18px);
|
|
4397
4471
|
font-weight: 500;
|
|
4398
4472
|
line-height: 1.5;
|
|
4399
4473
|
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
/* Avoid control overlap by shifting cues slightly if the browser supports it */
|
|
4405
|
-
.uvf-player-wrapper.controls-visible .uvf-video::cue {
|
|
4406
|
-
/* Browsers that support ::cue positioning can use this */
|
|
4474
|
+
display: inline-block;
|
|
4475
|
+
white-space: pre-wrap;
|
|
4476
|
+
box-decoration-break: clone;
|
|
4477
|
+
-webkit-box-decoration-break: clone;
|
|
4407
4478
|
}
|
|
4408
4479
|
|
|
4409
4480
|
.uvf-watermark-layer {
|
|
@@ -9291,6 +9362,9 @@ export class WebPlayer extends BasePlayer {
|
|
|
9291
9362
|
clearTimeout(this.hideControlsTimeout);
|
|
9292
9363
|
const wrapper = this.container?.querySelector('.uvf-player-wrapper');
|
|
9293
9364
|
if (wrapper) {
|
|
9365
|
+
if (this.controlsContainer) {
|
|
9366
|
+
wrapper.style.setProperty('--uvf-ctrl-height', `${this.controlsContainer.getBoundingClientRect().height}px`);
|
|
9367
|
+
}
|
|
9294
9368
|
wrapper.classList.add('controls-visible');
|
|
9295
9369
|
wrapper.classList.remove('no-cursor');
|
|
9296
9370
|
}
|
|
@@ -10881,6 +10955,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
10881
10955
|
return;
|
|
10882
10956
|
}
|
|
10883
10957
|
if (subtitle === 'off') {
|
|
10958
|
+
this.currentSubtitleIndex = -1;
|
|
10884
10959
|
if (this.video?.textTracks) {
|
|
10885
10960
|
Array.from(this.video.textTracks).forEach(track => {
|
|
10886
10961
|
track.mode = 'disabled';
|
|
@@ -10889,19 +10964,26 @@ export class WebPlayer extends BasePlayer {
|
|
|
10889
10964
|
if (this.hls) {
|
|
10890
10965
|
this.hls.subtitleTrack = -1;
|
|
10891
10966
|
}
|
|
10967
|
+
if (this.subtitleOverlay) {
|
|
10968
|
+
this.subtitleOverlay.innerHTML = '';
|
|
10969
|
+
this.subtitleOverlay.style.display = 'none';
|
|
10970
|
+
}
|
|
10892
10971
|
}
|
|
10893
10972
|
else if (subtitle.startsWith('hls-')) {
|
|
10894
10973
|
const index = parseInt(subtitle.replace('hls-', ''));
|
|
10895
10974
|
if (this.hls && !isNaN(index)) {
|
|
10896
10975
|
this.hls.subtitleTrack = index;
|
|
10976
|
+
this.currentSubtitleIndex = index;
|
|
10897
10977
|
}
|
|
10898
10978
|
}
|
|
10899
10979
|
else {
|
|
10900
10980
|
const trackIndex = parseInt(subtitle);
|
|
10901
10981
|
if (this.video?.textTracks && !isNaN(trackIndex)) {
|
|
10902
10982
|
Array.from(this.video.textTracks).forEach((track, index) => {
|
|
10903
|
-
track.mode = index === trackIndex ? '
|
|
10983
|
+
track.mode = index === trackIndex ? 'hidden' : 'disabled';
|
|
10904
10984
|
});
|
|
10985
|
+
this.currentSubtitleIndex = trackIndex;
|
|
10986
|
+
this.updateSubtitleOverlay();
|
|
10905
10987
|
}
|
|
10906
10988
|
}
|
|
10907
10989
|
this.debugLog(`Subtitle set to ${subtitle}`);
|
|
@@ -11573,6 +11655,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
11573
11655
|
if (this.container) {
|
|
11574
11656
|
this.container.innerHTML = '';
|
|
11575
11657
|
}
|
|
11658
|
+
this.subtitleOverlay = null;
|
|
11576
11659
|
this.events.removeAllListeners();
|
|
11577
11660
|
}
|
|
11578
11661
|
}
|