unified-video-framework 1.4.212 → 1.4.213

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.212",
3
+ "version": "1.4.213",
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",
@@ -110,6 +110,7 @@ export declare class WebPlayer extends BasePlayer {
110
110
  play(): Promise<void>;
111
111
  pause(): void;
112
112
  requestPause(): void;
113
+ private safeSetCurrentTime;
113
114
  seek(time: number): void;
114
115
  setVolume(level: number): void;
115
116
  mute(): void;
@@ -164,7 +165,7 @@ export declare class WebPlayer extends BasePlayer {
164
165
  private lockOrientationLandscape;
165
166
  private unlockOrientation;
166
167
  private handleVolumeChange;
167
- private handleProgressChange;
168
+ private seekToPosition;
168
169
  private formatTime;
169
170
  private updateTimeDisplay;
170
171
  private showControls;
@@ -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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"}
@@ -1022,26 +1022,57 @@ export class WebPlayer extends BasePlayer {
1022
1022
  catch (_) { }
1023
1023
  }
1024
1024
  }
1025
+ safeSetCurrentTime(time) {
1026
+ if (!this.video) {
1027
+ this.debugWarn('Cannot set currentTime: video element not available');
1028
+ return false;
1029
+ }
1030
+ if (!isFinite(time) || isNaN(time)) {
1031
+ this.debugWarn('Attempted to set invalid currentTime value:', time);
1032
+ return false;
1033
+ }
1034
+ const safeTime = Math.max(0, time);
1035
+ const duration = this.video.duration;
1036
+ if (isFinite(duration) && duration > 0) {
1037
+ const clampedTime = Math.min(safeTime, duration);
1038
+ try {
1039
+ this.video.currentTime = clampedTime;
1040
+ return true;
1041
+ }
1042
+ catch (error) {
1043
+ this.debugError('Error setting currentTime:', error);
1044
+ return false;
1045
+ }
1046
+ }
1047
+ else {
1048
+ try {
1049
+ this.video.currentTime = safeTime;
1050
+ return true;
1051
+ }
1052
+ catch (error) {
1053
+ this.debugError('Error setting currentTime:', error);
1054
+ return false;
1055
+ }
1056
+ }
1057
+ }
1025
1058
  seek(time) {
1026
1059
  if (!this.video)
1027
1060
  return;
1061
+ if (!isFinite(time) || isNaN(time)) {
1062
+ this.debugWarn('Invalid seek time:', time);
1063
+ return;
1064
+ }
1028
1065
  const freeDuration = Number(this.config.freeDuration || 0);
1029
1066
  if (freeDuration > 0 && !this.paymentSuccessful) {
1030
1067
  const requestedTime = Math.max(0, Math.min(time, this.video.duration || time));
1031
1068
  if (requestedTime >= freeDuration) {
1032
1069
  this.debugWarn('Seek blocked - beyond free preview limit');
1033
1070
  this.enforcePaywallSecurity();
1034
- this.video.currentTime = Math.max(0, freeDuration - 1);
1071
+ this.safeSetCurrentTime(freeDuration - 1);
1035
1072
  return;
1036
1073
  }
1037
1074
  }
1038
- const d = this.video.duration;
1039
- if (typeof d === 'number' && isFinite(d) && d > 0) {
1040
- this.video.currentTime = Math.max(0, Math.min(time, d));
1041
- }
1042
- else {
1043
- this.video.currentTime = Math.max(0, time);
1044
- }
1075
+ this.safeSetCurrentTime(time);
1045
1076
  }
1046
1077
  setVolume(level) {
1047
1078
  if (!this.video)
@@ -3879,6 +3910,83 @@ export class WebPlayer extends BasePlayer {
3879
3910
  100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }
3880
3911
  }
3881
3912
 
3913
+ /* Responsive shortcut/volume indicator for mobile and tablet */
3914
+ @media screen and (max-width: 767px) {
3915
+ .uvf-shortcut-indicator {
3916
+ padding: 16px 24px;
3917
+ font-size: 20px;
3918
+ max-width: calc(100vw - 40px);
3919
+ border-radius: 12px;
3920
+ backdrop-filter: blur(10px);
3921
+ }
3922
+
3923
+ /* Volume indicator - more compact on mobile */
3924
+ .uvf-shortcut-indicator .uvf-ki-volume {
3925
+ flex-direction: column;
3926
+ gap: 12px;
3927
+ }
3928
+
3929
+ .uvf-shortcut-indicator .uvf-ki-vol-icon svg {
3930
+ width: 32px;
3931
+ height: 32px;
3932
+ }
3933
+
3934
+ .uvf-shortcut-indicator .uvf-ki-vol-bar {
3935
+ width: clamp(200px, 70vw, 280px);
3936
+ height: 10px;
3937
+ border-radius: 5px;
3938
+ }
3939
+
3940
+ .uvf-shortcut-indicator .uvf-ki-vol-text {
3941
+ font-size: 22px;
3942
+ font-weight: 700;
3943
+ min-width: auto;
3944
+ text-align: center;
3945
+ width: 100%;
3946
+ }
3947
+
3948
+ /* Skip indicators - slightly smaller */
3949
+ .uvf-shortcut-indicator .uvf-ki-skip {
3950
+ width: 90px;
3951
+ height: 90px;
3952
+ }
3953
+
3954
+ .uvf-shortcut-indicator .uvf-ki-skip svg {
3955
+ width: 90px;
3956
+ height: 90px;
3957
+ }
3958
+
3959
+ .uvf-shortcut-indicator .uvf-ki-skip .uvf-ki-skip-num {
3960
+ font-size: 19px;
3961
+ }
3962
+
3963
+ /* Icon indicators */
3964
+ .uvf-shortcut-indicator .uvf-ki svg {
3965
+ width: 56px;
3966
+ height: 56px;
3967
+ }
3968
+
3969
+ .uvf-shortcut-indicator .uvf-ki-text {
3970
+ font-size: 16px;
3971
+ }
3972
+ }
3973
+
3974
+ @media screen and (min-width: 768px) and (max-width: 1023px) {
3975
+ /* Tablet optimization */
3976
+ .uvf-shortcut-indicator .uvf-ki-vol-bar {
3977
+ width: 160px;
3978
+ }
3979
+
3980
+ .uvf-shortcut-indicator .uvf-ki-vol-icon svg {
3981
+ width: 34px;
3982
+ height: 34px;
3983
+ }
3984
+
3985
+ .uvf-shortcut-indicator .uvf-ki-vol-text {
3986
+ font-size: 15px;
3987
+ }
3988
+ }
3989
+
3882
3990
  /* Hide top bar when no cursor */
3883
3991
  .uvf-player-wrapper.no-cursor .uvf-top-bar {
3884
3992
  opacity: 0 !important;
@@ -5349,8 +5457,16 @@ export class WebPlayer extends BasePlayer {
5349
5457
  this.debugLog('Center play button shown - video ended');
5350
5458
  }
5351
5459
  });
5352
- skipBackBtn?.addEventListener('click', () => this.seek(this.video.currentTime - 10));
5353
- skipForwardBtn?.addEventListener('click', () => this.seek(this.video.currentTime + 10));
5460
+ skipBackBtn?.addEventListener('click', () => {
5461
+ if (this.video && !isNaN(this.video.duration)) {
5462
+ this.seek(Math.max(0, this.video.currentTime - 10));
5463
+ }
5464
+ });
5465
+ skipForwardBtn?.addEventListener('click', () => {
5466
+ if (this.video && !isNaN(this.video.duration)) {
5467
+ this.seek(Math.min(this.video.duration, this.video.currentTime + 10));
5468
+ }
5469
+ });
5354
5470
  volumeBtn?.addEventListener('click', (e) => {
5355
5471
  e.stopPropagation();
5356
5472
  this.toggleMuteAction();
@@ -5392,12 +5508,12 @@ export class WebPlayer extends BasePlayer {
5392
5508
  this.handleVolumeChange(e);
5393
5509
  });
5394
5510
  progressBar?.addEventListener('click', (e) => {
5395
- this.handleProgressChange(e);
5511
+ this.seekToPosition(e);
5396
5512
  });
5397
5513
  progressBar?.addEventListener('mousedown', (e) => {
5398
5514
  this.isDragging = true;
5399
5515
  this.showTimeTooltip = true;
5400
- this.handleProgressChange(e);
5516
+ this.seekToPosition(e);
5401
5517
  this.updateTimeTooltip(e);
5402
5518
  });
5403
5519
  progressBar?.addEventListener('mouseenter', () => {
@@ -5418,14 +5534,18 @@ export class WebPlayer extends BasePlayer {
5418
5534
  e.preventDefault();
5419
5535
  this.isDragging = true;
5420
5536
  const touch = e.touches[0];
5421
- this.handleProgressChange(touch);
5537
+ const mouseEvent = new MouseEvent('mousedown', {
5538
+ clientX: touch.clientX,
5539
+ clientY: touch.clientY
5540
+ });
5541
+ this.seekToPosition(mouseEvent);
5422
5542
  }, { passive: false });
5423
5543
  document.addEventListener('mousemove', (e) => {
5424
5544
  if (this.isVolumeSliding) {
5425
5545
  this.handleVolumeChange(e);
5426
5546
  }
5427
5547
  if (this.isDragging && progressBar) {
5428
- this.handleProgressChange(e);
5548
+ this.seekToPosition(e);
5429
5549
  this.updateTimeTooltip(e);
5430
5550
  }
5431
5551
  });
@@ -5433,7 +5553,11 @@ export class WebPlayer extends BasePlayer {
5433
5553
  if (this.isDragging && progressBar) {
5434
5554
  e.preventDefault();
5435
5555
  const touch = e.touches[0];
5436
- this.handleProgressChange(touch);
5556
+ const mouseEvent = new MouseEvent('mousemove', {
5557
+ clientX: touch.clientX,
5558
+ clientY: touch.clientY
5559
+ });
5560
+ this.seekToPosition(mouseEvent);
5437
5561
  }
5438
5562
  }, { passive: false });
5439
5563
  document.addEventListener('mouseup', () => {
@@ -5692,14 +5816,18 @@ export class WebPlayer extends BasePlayer {
5692
5816
  case 'ArrowLeft':
5693
5817
  e.preventDefault();
5694
5818
  e.stopImmediatePropagation();
5695
- this.seek(Math.max(0, this.video.currentTime - 10));
5696
- shortcutText = '-10s';
5819
+ if (this.video && !isNaN(this.video.duration)) {
5820
+ this.seek(Math.max(0, this.video.currentTime - 10));
5821
+ shortcutText = '-10s';
5822
+ }
5697
5823
  break;
5698
5824
  case 'ArrowRight':
5699
5825
  e.preventDefault();
5700
5826
  e.stopImmediatePropagation();
5701
- this.seek(Math.min(this.video.duration, this.video.currentTime + 10));
5702
- shortcutText = '+10s';
5827
+ if (this.video && !isNaN(this.video.duration)) {
5828
+ this.seek(Math.min(this.video.duration, this.video.currentTime + 10));
5829
+ shortcutText = '+10s';
5830
+ }
5703
5831
  break;
5704
5832
  case 'ArrowUp':
5705
5833
  e.preventDefault();
@@ -5765,8 +5893,8 @@ export class WebPlayer extends BasePlayer {
5765
5893
  case '8':
5766
5894
  case '9':
5767
5895
  e.preventDefault();
5768
- const percent = parseInt(e.key) * 10;
5769
- if (this.video) {
5896
+ if (this.video && !isNaN(this.video.duration) && this.video.duration > 0) {
5897
+ const percent = parseInt(e.key) * 10;
5770
5898
  this.video.currentTime = (this.video.duration * percent) / 100;
5771
5899
  shortcutText = `${percent}%`;
5772
5900
  }
@@ -6038,7 +6166,7 @@ export class WebPlayer extends BasePlayer {
6038
6166
  try {
6039
6167
  this.requestPause();
6040
6168
  if (fromSeek || ((this.video.currentTime || 0) > lim)) {
6041
- this.video.currentTime = Math.max(0, lim - 0.1);
6169
+ this.safeSetCurrentTime(lim - 0.1);
6042
6170
  }
6043
6171
  }
6044
6172
  catch (_) { }
@@ -6192,16 +6320,25 @@ export class WebPlayer extends BasePlayer {
6192
6320
  this.video.muted = false;
6193
6321
  }
6194
6322
  }
6195
- handleProgressChange(e) {
6196
- const progressBar = document.getElementById('uvf-progress-bar');
6323
+ seekToPosition(e) {
6324
+ const progressBar = document.querySelector('.uvf-progress-bar');
6197
6325
  const progressFilled = document.getElementById('uvf-progress-filled');
6198
6326
  const progressHandle = document.getElementById('uvf-progress-handle');
6199
6327
  if (!progressBar || !this.video)
6200
6328
  return;
6329
+ const duration = this.video.duration;
6330
+ if (!isFinite(duration) || isNaN(duration) || duration <= 0) {
6331
+ this.debugWarn('Invalid video duration, cannot seek via progress bar');
6332
+ return;
6333
+ }
6201
6334
  const rect = progressBar.getBoundingClientRect();
6202
6335
  const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));
6203
6336
  const percent = (x / rect.width) * 100;
6204
- const time = (percent / 100) * this.video.duration;
6337
+ const time = (percent / 100) * duration;
6338
+ if (!isFinite(time) || isNaN(time)) {
6339
+ this.debugWarn('Calculated seek time is invalid:', time);
6340
+ return;
6341
+ }
6205
6342
  if (progressFilled) {
6206
6343
  progressFilled.style.width = percent + '%';
6207
6344
  }
@@ -6380,14 +6517,20 @@ export class WebPlayer extends BasePlayer {
6380
6517
  const tapPosition = tapX - wrapperRect.left;
6381
6518
  const wrapperWidth = wrapperRect.width;
6382
6519
  const isLeftSide = tapPosition < wrapperWidth / 2;
6520
+ const currentTime = this.video.currentTime;
6521
+ const duration = this.video.duration;
6522
+ if (!isFinite(currentTime) || isNaN(currentTime) || !isFinite(duration) || isNaN(duration)) {
6523
+ this.debugWarn('Invalid video time values, skipping double-tap action');
6524
+ return;
6525
+ }
6383
6526
  if (isLeftSide) {
6384
- const newTime = Math.max(0, this.video.currentTime - SKIP_SECONDS);
6527
+ const newTime = Math.max(0, currentTime - SKIP_SECONDS);
6385
6528
  this.seek(newTime);
6386
6529
  this.showShortcutIndicator(`-${SKIP_SECONDS}s`);
6387
6530
  this.debugLog('Double tap left - skip backward');
6388
6531
  }
6389
6532
  else {
6390
- const newTime = Math.min(this.video.duration, this.video.currentTime + SKIP_SECONDS);
6533
+ const newTime = Math.min(duration, currentTime + SKIP_SECONDS);
6391
6534
  this.seek(newTime);
6392
6535
  this.showShortcutIndicator(`+${SKIP_SECONDS}s`);
6393
6536
  this.debugLog('Double tap right - skip forward');
@@ -6435,8 +6578,11 @@ export class WebPlayer extends BasePlayer {
6435
6578
  return;
6436
6579
  this.fastBackwardInterval = setInterval(() => {
6437
6580
  if (this.video) {
6438
- const newTime = Math.max(0, this.video.currentTime - 0.1);
6439
- this.video.currentTime = newTime;
6581
+ const currentTime = this.video.currentTime;
6582
+ if (isFinite(currentTime) && !isNaN(currentTime)) {
6583
+ const newTime = Math.max(0, currentTime - 0.1);
6584
+ this.safeSetCurrentTime(newTime);
6585
+ }
6440
6586
  }
6441
6587
  }, 50);
6442
6588
  }
@@ -6842,8 +6988,8 @@ export class WebPlayer extends BasePlayer {
6842
6988
  return;
6843
6989
  }
6844
6990
  const chapter = this.coreChapterManager.seekToChapter(chapterId);
6845
- if (chapter) {
6846
- this.video.currentTime = chapter.startTime;
6991
+ if (chapter && isFinite(chapter.startTime) && !isNaN(chapter.startTime)) {
6992
+ this.safeSetCurrentTime(chapter.startTime);
6847
6993
  this.debugLog('Seeked to chapter:', chapter.title);
6848
6994
  }
6849
6995
  }
@@ -7495,17 +7641,9 @@ export class WebPlayer extends BasePlayer {
7495
7641
  item.classList.remove('expanded');
7496
7642
  });
7497
7643
  }
7498
- if (this.isMobileDevice()) {
7499
- setTimeout(() => {
7500
- this.hideSettingsMenu();
7501
- }, 300);
7502
- }
7503
- else {
7504
- setTimeout(() => {
7505
- this.generateAccordionMenu();
7506
- this.setupSettingsEventListeners();
7507
- }, 100);
7508
- }
7644
+ setTimeout(() => {
7645
+ this.hideSettingsMenu();
7646
+ }, 200);
7509
7647
  }
7510
7648
  updateSettingsActiveStates(className, activeElement) {
7511
7649
  const settingsMenu = document.getElementById('uvf-settings-menu');
@@ -8030,12 +8168,12 @@ export class WebPlayer extends BasePlayer {
8030
8168
  }
8031
8169
  }
8032
8170
  if (this.video && !this.video.paused && !this.paymentSuccessful) {
8033
- this.debugWarn('Unauthorized playbook detected, pausing video');
8171
+ this.debugWarn('Unauthorized playback detected, pausing video');
8034
8172
  try {
8035
8173
  this.video.pause();
8036
8174
  const freeDuration = Number(this.config.freeDuration || 0);
8037
- if (freeDuration > 0) {
8038
- this.video.currentTime = Math.max(0, freeDuration - 1);
8175
+ if (freeDuration > 0 && isFinite(freeDuration)) {
8176
+ this.safeSetCurrentTime(freeDuration - 1);
8039
8177
  }
8040
8178
  }
8041
8179
  catch (_) { }
@@ -8046,7 +8184,7 @@ export class WebPlayer extends BasePlayer {
8046
8184
  this.debugError('Security violation detected - disabling video');
8047
8185
  if (this.video) {
8048
8186
  this.video.pause();
8049
- this.video.currentTime = 0;
8187
+ this.safeSetCurrentTime(0);
8050
8188
  this.video.src = '';
8051
8189
  this.video.style.display = 'none';
8052
8190
  }