unified-video-framework 1.4.196 → 1.4.197
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.197",
|
|
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",
|
|
@@ -101,6 +101,8 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
101
101
|
private setupAutoplayRetry;
|
|
102
102
|
private showPlayOverlay;
|
|
103
103
|
private hidePlayOverlay;
|
|
104
|
+
private showUnmuteButton;
|
|
105
|
+
private hideUnmuteButton;
|
|
104
106
|
private updateTimeTooltip;
|
|
105
107
|
private hideTimeTooltip;
|
|
106
108
|
private setupUserInteractionTracking;
|
|
@@ -226,6 +228,7 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
226
228
|
private setSubtitle;
|
|
227
229
|
private _updateCastActiveTracks;
|
|
228
230
|
private onCastButtonClick;
|
|
231
|
+
private showAirPlayPicker;
|
|
229
232
|
private stopCasting;
|
|
230
233
|
private initCast;
|
|
231
234
|
private shareVideo;
|
|
@@ -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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"}
|
|
@@ -159,6 +159,8 @@ export class WebPlayer extends BasePlayer {
|
|
|
159
159
|
this.video.loop = this.config.loop ?? false;
|
|
160
160
|
this.video.playsInline = this.config.playsInline ?? true;
|
|
161
161
|
this.video.preload = this.config.preload ?? 'metadata';
|
|
162
|
+
this.video.webkitAllowsAirPlay = true;
|
|
163
|
+
this.video.setAttribute('x-webkit-airplay', 'allow');
|
|
162
164
|
if (this.config.crossOrigin) {
|
|
163
165
|
this.video.crossOrigin = this.config.crossOrigin;
|
|
164
166
|
}
|
|
@@ -712,6 +714,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
712
714
|
try {
|
|
713
715
|
await this.play();
|
|
714
716
|
this.debugLog('✅ Muted autoplay successful');
|
|
717
|
+
this.showUnmuteButton();
|
|
715
718
|
return true;
|
|
716
719
|
}
|
|
717
720
|
catch (error) {
|
|
@@ -874,6 +877,110 @@ export class WebPlayer extends BasePlayer {
|
|
|
874
877
|
overlay.remove();
|
|
875
878
|
}
|
|
876
879
|
}
|
|
880
|
+
showUnmuteButton() {
|
|
881
|
+
this.hideUnmuteButton();
|
|
882
|
+
this.debugLog('🔇 Showing unmute button - video autoplaying muted');
|
|
883
|
+
const unmuteBtn = document.createElement('button');
|
|
884
|
+
unmuteBtn.id = 'uvf-unmute-btn';
|
|
885
|
+
unmuteBtn.className = 'uvf-unmute-btn';
|
|
886
|
+
unmuteBtn.setAttribute('aria-label', 'Tap to unmute');
|
|
887
|
+
unmuteBtn.innerHTML = `
|
|
888
|
+
<svg viewBox="0 0 24 24" class="uvf-unmute-icon">
|
|
889
|
+
<path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/>
|
|
890
|
+
</svg>
|
|
891
|
+
<span class="uvf-unmute-text">Tap to unmute</span>
|
|
892
|
+
`;
|
|
893
|
+
unmuteBtn.addEventListener('click', (e) => {
|
|
894
|
+
e.stopPropagation();
|
|
895
|
+
if (this.video) {
|
|
896
|
+
this.video.muted = false;
|
|
897
|
+
this.debugLog('🔊 Video unmuted by user');
|
|
898
|
+
this.hideUnmuteButton();
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
const style = document.createElement('style');
|
|
902
|
+
style.textContent = `
|
|
903
|
+
.uvf-unmute-btn {
|
|
904
|
+
position: absolute !important;
|
|
905
|
+
bottom: 80px !important;
|
|
906
|
+
left: 20px !important;
|
|
907
|
+
z-index: 1000 !important;
|
|
908
|
+
display: flex !important;
|
|
909
|
+
align-items: center !important;
|
|
910
|
+
gap: 8px !important;
|
|
911
|
+
padding: 12px 16px !important;
|
|
912
|
+
background: rgba(0, 0, 0, 0.8) !important;
|
|
913
|
+
border: none !important;
|
|
914
|
+
border-radius: 4px !important;
|
|
915
|
+
color: white !important;
|
|
916
|
+
font-size: 14px !important;
|
|
917
|
+
font-weight: 500 !important;
|
|
918
|
+
cursor: pointer !important;
|
|
919
|
+
transition: all 0.2s ease !important;
|
|
920
|
+
backdrop-filter: blur(10px) !important;
|
|
921
|
+
-webkit-backdrop-filter: blur(10px) !important;
|
|
922
|
+
animation: uvf-unmute-pulse 2s ease-in-out infinite !important;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
.uvf-unmute-btn:hover {
|
|
926
|
+
background: rgba(0, 0, 0, 0.9) !important;
|
|
927
|
+
transform: scale(1.05) !important;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
.uvf-unmute-btn:active {
|
|
931
|
+
transform: scale(0.95) !important;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
.uvf-unmute-icon {
|
|
935
|
+
width: 20px !important;
|
|
936
|
+
height: 20px !important;
|
|
937
|
+
fill: white !important;
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
.uvf-unmute-text {
|
|
941
|
+
white-space: nowrap !important;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
@keyframes uvf-unmute-pulse {
|
|
945
|
+
0%, 100% {
|
|
946
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
|
|
947
|
+
}
|
|
948
|
+
50% {
|
|
949
|
+
box-shadow: 0 2px 16px rgba(255, 255, 255, 0.2) !important;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
/* Mobile responsive */
|
|
954
|
+
@media (max-width: 767px) {
|
|
955
|
+
.uvf-unmute-btn {
|
|
956
|
+
bottom: 70px !important;
|
|
957
|
+
left: 50% !important;
|
|
958
|
+
transform: translateX(-50%) !important;
|
|
959
|
+
padding: 10px 14px !important;
|
|
960
|
+
font-size: 13px !important;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
.uvf-unmute-btn:hover {
|
|
964
|
+
transform: translateX(-50%) scale(1.05) !important;
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
`;
|
|
968
|
+
if (!document.getElementById('uvf-unmute-styles')) {
|
|
969
|
+
style.id = 'uvf-unmute-styles';
|
|
970
|
+
document.head.appendChild(style);
|
|
971
|
+
}
|
|
972
|
+
if (this.playerWrapper) {
|
|
973
|
+
this.playerWrapper.appendChild(unmuteBtn);
|
|
974
|
+
this.debugLog('✅ Unmute button added to player');
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
hideUnmuteButton() {
|
|
978
|
+
const unmuteBtn = document.getElementById('uvf-unmute-btn');
|
|
979
|
+
if (unmuteBtn) {
|
|
980
|
+
unmuteBtn.remove();
|
|
981
|
+
this.debugLog('Unmute button removed');
|
|
982
|
+
}
|
|
983
|
+
}
|
|
877
984
|
updateTimeTooltip(e) {
|
|
878
985
|
const progressBar = document.getElementById('uvf-progress-bar');
|
|
879
986
|
const tooltip = document.getElementById('uvf-time-tooltip');
|
|
@@ -3638,18 +3745,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3638
3745
|
height: 24px;
|
|
3639
3746
|
}
|
|
3640
3747
|
|
|
3641
|
-
.uvf-player-wrapper.uvf-fullscreen .uvf-top-btn {
|
|
3642
|
-
width: 40px;
|
|
3643
|
-
height: 40px;
|
|
3644
|
-
min-width: 40px;
|
|
3645
|
-
min-height: 40px;
|
|
3646
|
-
}
|
|
3647
|
-
|
|
3648
|
-
.uvf-player-wrapper.uvf-fullscreen .uvf-top-btn svg {
|
|
3649
|
-
width: 20px;
|
|
3650
|
-
height: 20px;
|
|
3651
|
-
}
|
|
3652
|
-
|
|
3653
3748
|
.uvf-player-wrapper.uvf-fullscreen .uvf-time-display {
|
|
3654
3749
|
font-size: 14px;
|
|
3655
3750
|
padding: 0 10px;
|
|
@@ -3766,11 +3861,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3766
3861
|
display: flex !important;
|
|
3767
3862
|
}
|
|
3768
3863
|
|
|
3769
|
-
.uvf-top-btn {
|
|
3770
|
-
display: flex !important;
|
|
3771
|
-
border-radius: 50% !important;
|
|
3772
|
-
}
|
|
3773
|
-
|
|
3774
3864
|
/* Show top bar when controls are visible or on hover */
|
|
3775
3865
|
.uvf-player-wrapper:hover .uvf-top-bar,
|
|
3776
3866
|
.uvf-player-wrapper.controls-visible .uvf-top-bar {
|
|
@@ -3874,18 +3964,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3874
3964
|
gap: 6px !important;
|
|
3875
3965
|
}
|
|
3876
3966
|
|
|
3877
|
-
.uvf-top-btn {
|
|
3878
|
-
width: 40px;
|
|
3879
|
-
height: 40px;
|
|
3880
|
-
min-width: 40px;
|
|
3881
|
-
min-height: 40px;
|
|
3882
|
-
}
|
|
3883
|
-
|
|
3884
|
-
.uvf-top-btn svg {
|
|
3885
|
-
width: 18px;
|
|
3886
|
-
height: 18px;
|
|
3887
|
-
}
|
|
3888
|
-
|
|
3889
3967
|
/* Title bar within top bar - landscape */
|
|
3890
3968
|
.uvf-top-bar .uvf-title-bar {
|
|
3891
3969
|
padding: 0;
|
|
@@ -3971,19 +4049,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3971
4049
|
height: 23px;
|
|
3972
4050
|
}
|
|
3973
4051
|
|
|
3974
|
-
/* Tablet top controls */
|
|
3975
|
-
.uvf-top-btn {
|
|
3976
|
-
width: 42px;
|
|
3977
|
-
height: 42px;
|
|
3978
|
-
min-width: 42px;
|
|
3979
|
-
min-height: 42px;
|
|
3980
|
-
}
|
|
3981
|
-
|
|
3982
|
-
.uvf-top-btn svg {
|
|
3983
|
-
width: 19px;
|
|
3984
|
-
height: 19px;
|
|
3985
|
-
}
|
|
3986
|
-
|
|
3987
4052
|
/* Top bar for tablet */
|
|
3988
4053
|
.uvf-top-bar {
|
|
3989
4054
|
padding: 16px;
|
|
@@ -4122,23 +4187,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4122
4187
|
height: 24px;
|
|
4123
4188
|
}
|
|
4124
4189
|
|
|
4125
|
-
/* Enhanced top controls */
|
|
4126
|
-
.uvf-top-btn {
|
|
4127
|
-
width: 40px;
|
|
4128
|
-
height: 40px;
|
|
4129
|
-
transition: all 0.2s cubic-bezier(0.4, 0.0, 0.2, 1);
|
|
4130
|
-
}
|
|
4131
|
-
|
|
4132
|
-
.uvf-top-btn:hover {
|
|
4133
|
-
transform: scale(1.1);
|
|
4134
|
-
background: var(--uvf-overlay-medium);
|
|
4135
|
-
}
|
|
4136
|
-
|
|
4137
|
-
.uvf-top-btn svg {
|
|
4138
|
-
width: 20px;
|
|
4139
|
-
height: 20px;
|
|
4140
|
-
}
|
|
4141
|
-
|
|
4142
4190
|
/* Top bar for desktop 1024px+ */
|
|
4143
4191
|
.uvf-top-bar {
|
|
4144
4192
|
padding: 20px;
|
|
@@ -4258,16 +4306,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4258
4306
|
height: 28px;
|
|
4259
4307
|
}
|
|
4260
4308
|
|
|
4261
|
-
.uvf-top-btn {
|
|
4262
|
-
width: 44px;
|
|
4263
|
-
height: 44px;
|
|
4264
|
-
}
|
|
4265
|
-
|
|
4266
|
-
.uvf-top-btn svg {
|
|
4267
|
-
width: 22px;
|
|
4268
|
-
height: 22px;
|
|
4269
|
-
}
|
|
4270
|
-
|
|
4271
4309
|
.uvf-center-play-btn {
|
|
4272
4310
|
width: clamp(64px, 10vw, 76px);
|
|
4273
4311
|
height: clamp(64px, 10vw, 76px);
|
|
@@ -4308,8 +4346,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
4308
4346
|
/* High-DPI display optimizations */
|
|
4309
4347
|
@media screen and (-webkit-min-device-pixel-ratio: 2),
|
|
4310
4348
|
screen and (min-resolution: 192dpi) {
|
|
4311
|
-
.uvf-control-btn
|
|
4312
|
-
.uvf-top-btn {
|
|
4349
|
+
.uvf-control-btn {
|
|
4313
4350
|
image-rendering: -webkit-optimize-contrast;
|
|
4314
4351
|
image-rendering: crisp-edges;
|
|
4315
4352
|
}
|
|
@@ -4326,7 +4363,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4326
4363
|
/* Reduced motion accessibility */
|
|
4327
4364
|
@media (prefers-reduced-motion: reduce) {
|
|
4328
4365
|
.uvf-control-btn,
|
|
4329
|
-
.uvf-top-btn,
|
|
4330
4366
|
.uvf-center-play-btn,
|
|
4331
4367
|
.uvf-progress-handle,
|
|
4332
4368
|
.uvf-volume-slider,
|
|
@@ -4335,7 +4371,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4335
4371
|
}
|
|
4336
4372
|
|
|
4337
4373
|
.uvf-control-btn:hover,
|
|
4338
|
-
.uvf-top-btn:hover,
|
|
4339
4374
|
.uvf-center-play-btn:hover {
|
|
4340
4375
|
transform: none !important;
|
|
4341
4376
|
}
|
|
@@ -4361,11 +4396,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4361
4396
|
border-radius: 50%
|
|
4362
4397
|
}
|
|
4363
4398
|
|
|
4364
|
-
.uvf-top-btn {
|
|
4365
|
-
min-width: 44px;
|
|
4366
|
-
min-height: 44px;
|
|
4367
|
-
}
|
|
4368
|
-
|
|
4369
4399
|
.uvf-progress-bar {
|
|
4370
4400
|
height: 3px;
|
|
4371
4401
|
}
|
|
@@ -4384,22 +4414,21 @@ export class WebPlayer extends BasePlayer {
|
|
|
4384
4414
|
background: var(--uvf-overlay-medium);
|
|
4385
4415
|
transform: scale(0.95);
|
|
4386
4416
|
}
|
|
4387
|
-
|
|
4388
|
-
.uvf-top-btn:active {
|
|
4389
|
-
background: var(--uvf-overlay-medium);
|
|
4390
|
-
transform: scale(0.95);
|
|
4391
|
-
}
|
|
4392
4417
|
}
|
|
4393
4418
|
|
|
4394
4419
|
/* Keyboard navigation and accessibility */
|
|
4395
4420
|
.uvf-control-btn:focus-visible,
|
|
4396
|
-
.uvf-top-btn:focus-visible,
|
|
4397
4421
|
.uvf-center-play-btn:focus-visible {
|
|
4398
4422
|
outline: 2px solid var(--uvf-primary-color, #007bff);
|
|
4399
4423
|
outline-offset: 2px;
|
|
4400
4424
|
background: var(--uvf-overlay-medium);
|
|
4401
4425
|
}
|
|
4402
4426
|
|
|
4427
|
+
.uvf-top-btn:focus-visible {
|
|
4428
|
+
outline: 2px solid var(--uvf-primary-color, #007bff);
|
|
4429
|
+
outline-offset: 2px;
|
|
4430
|
+
}
|
|
4431
|
+
|
|
4403
4432
|
.uvf-progress-bar-wrapper:focus-visible {
|
|
4404
4433
|
outline: 2px solid var(--uvf-primary-color, #007bff);
|
|
4405
4434
|
outline-offset: 2px;
|
|
@@ -4431,7 +4460,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
4431
4460
|
|
|
4432
4461
|
/* High contrast mode support */
|
|
4433
4462
|
@media (prefers-contrast: high) {
|
|
4434
|
-
.uvf-control-btn
|
|
4463
|
+
.uvf-control-btn {
|
|
4464
|
+
border: 1px solid;
|
|
4465
|
+
}
|
|
4466
|
+
|
|
4435
4467
|
.uvf-top-btn {
|
|
4436
4468
|
border: 1px solid;
|
|
4437
4469
|
}
|
|
@@ -5069,6 +5101,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
5069
5101
|
else {
|
|
5070
5102
|
volumeIcon.style.display = 'block';
|
|
5071
5103
|
muteIcon.style.display = 'none';
|
|
5104
|
+
this.hideUnmuteButton();
|
|
5072
5105
|
}
|
|
5073
5106
|
}
|
|
5074
5107
|
});
|
|
@@ -5206,6 +5239,15 @@ export class WebPlayer extends BasePlayer {
|
|
|
5206
5239
|
const castBtn = document.getElementById('uvf-cast-btn');
|
|
5207
5240
|
const stopCastBtn = document.getElementById('uvf-stop-cast-btn');
|
|
5208
5241
|
const shareBtn = document.getElementById('uvf-share-btn');
|
|
5242
|
+
if (this.isIOSDevice() && castBtn) {
|
|
5243
|
+
castBtn.innerHTML = `
|
|
5244
|
+
<svg viewBox="0 0 24 24">
|
|
5245
|
+
<path d="M1 18h6v-2H1v2zm0-4h12v-2H1v2zm16.5 4.5c-1.25 0-2.45-.5-3.35-1.41L12 18.5l2.09 2.09c1.8 1.8 4.72 1.8 6.52 0 1.8-1.8 1.8-4.72 0-6.52L12 5.5 3.39 14.11c-1.8 1.8-1.8 4.72 0 6.52.9.9 2.1 1.41 3.35 1.41l6.76-6.76M12 7.91l6.89 6.89c.78.78.78 2.05 0 2.83-.78.78-2.05.78-2.83 0L12 13.57 7.94 17.63c-.78.78-2.05.78-2.83 0-.78-.78-.78-2.05 0-2.83L12 7.91z"/>
|
|
5246
|
+
</svg>
|
|
5247
|
+
`;
|
|
5248
|
+
castBtn.setAttribute('title', 'AirPlay');
|
|
5249
|
+
castBtn.setAttribute('aria-label', 'AirPlay');
|
|
5250
|
+
}
|
|
5209
5251
|
castBtn?.addEventListener('click', () => this.onCastButtonClick());
|
|
5210
5252
|
stopCastBtn?.addEventListener('click', () => this.stopCasting());
|
|
5211
5253
|
shareBtn?.addEventListener('click', () => this.shareVideo());
|
|
@@ -7156,6 +7198,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
7156
7198
|
catch (_) { }
|
|
7157
7199
|
}
|
|
7158
7200
|
onCastButtonClick() {
|
|
7201
|
+
if (this.isIOSDevice()) {
|
|
7202
|
+
this.showAirPlayPicker();
|
|
7203
|
+
return;
|
|
7204
|
+
}
|
|
7159
7205
|
try {
|
|
7160
7206
|
const castNs = window.cast;
|
|
7161
7207
|
if (this.isCasting && castNs && castNs.framework) {
|
|
@@ -7167,6 +7213,27 @@ export class WebPlayer extends BasePlayer {
|
|
|
7167
7213
|
catch (_) { }
|
|
7168
7214
|
this.initCast();
|
|
7169
7215
|
}
|
|
7216
|
+
showAirPlayPicker() {
|
|
7217
|
+
if (!this.video) {
|
|
7218
|
+
this.showNotification('Video not ready');
|
|
7219
|
+
return;
|
|
7220
|
+
}
|
|
7221
|
+
const videoElement = this.video;
|
|
7222
|
+
if (typeof videoElement.webkitShowPlaybackTargetPicker === 'function') {
|
|
7223
|
+
try {
|
|
7224
|
+
videoElement.webkitShowPlaybackTargetPicker();
|
|
7225
|
+
this.debugLog('AirPlay picker shown');
|
|
7226
|
+
}
|
|
7227
|
+
catch (error) {
|
|
7228
|
+
this.debugWarn('Failed to show AirPlay picker:', error.message);
|
|
7229
|
+
this.showNotification('AirPlay not available');
|
|
7230
|
+
}
|
|
7231
|
+
}
|
|
7232
|
+
else {
|
|
7233
|
+
this.debugWarn('AirPlay not supported on this device');
|
|
7234
|
+
this.showNotification('AirPlay not supported');
|
|
7235
|
+
}
|
|
7236
|
+
}
|
|
7170
7237
|
stopCasting() {
|
|
7171
7238
|
try {
|
|
7172
7239
|
const castNs = window.cast;
|