unified-video-framework 1.4.245 → 1.4.247
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.247",
|
|
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",
|
|
@@ -109,6 +109,10 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
109
109
|
private youtubePlayer;
|
|
110
110
|
private youtubePlayerReady;
|
|
111
111
|
private youtubeIframe;
|
|
112
|
+
private isYoutubePiPActive;
|
|
113
|
+
private youtubePiPContainer;
|
|
114
|
+
private youtubePiPOriginalParent;
|
|
115
|
+
private youtubePiPOriginalPosition;
|
|
112
116
|
private createYouTubePlayer;
|
|
113
117
|
private loadYouTubeAPI;
|
|
114
118
|
private waitForYouTubeAPI;
|
|
@@ -237,6 +241,8 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
237
241
|
private setSpeed;
|
|
238
242
|
private setQualityByLabel;
|
|
239
243
|
private togglePiP;
|
|
244
|
+
private enterYoutubePiP;
|
|
245
|
+
private exitYoutubePiP;
|
|
240
246
|
private setupCastContextSafe;
|
|
241
247
|
private setupCastContext;
|
|
242
248
|
private enableCastRemoteControl;
|
|
@@ -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":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAOL,OAAO,EACP,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EAEb,MAAM,+BAA+B,CAAC;AAIvC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC;QACZ,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,EAAE,CAAC,EAAE,GAAG,CAAC;QACT,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;KACxD;CACF;AAED,qBAAa,SAAU,SAAQ,UAAU;IACvC,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAChD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,UAAU,CAAkB;IAGpC,OAAO,CAAC,cAAc,CAKpB;IACF,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,yBAAyB,CAAa;IAC9C,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,KAAK,CAAa;IAG1B,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,mBAAmB,CAAO;IAGlC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,mBAAmB,CAAa;IAGxC,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,oBAAoB,CAA+B;IAC3D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,kBAAkB,CAAwB;IAGlD,OAAO,CAAC,oBAAoB,CAU1B;IACF,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,kBAAkB,CAAa;IAGvC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,aAAa,CAAqC;IAG1D,OAAO,CAAC,aAAa,CAAa;IAGlC,OAAO,CAAC,gBAAgB,CAAa;IAGrC,OAAO,CAAC,WAAW,CAAkB;IAGrC,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAOX,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cAkE9D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA4J5C,OAAO,CAAC,iBAAiB,CAAkB;IAE3C,OAAO,CAAC,wBAAwB;IA4MhC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAYtB,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAkDxB,eAAe;YAoCf,iBAAiB;IA2G/B,OAAO,CAAC,kBAAkB;IAiF1B,OAAO,CAAC,gBAAgB;YAoBV,OAAO;IA4DrB,OAAO,CAAC,cAAc;YAyBR,QAAQ;IAkEtB,OAAO,CAAC,iBAAiB;YAQX,UAAU;YAMV,WAAW;IA2CzB,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,0BAA0B,CAAc;YAElC,mBAAmB;YAkEnB,cAAc;YAqBd,iBAAiB;IAa/B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,0BAA0B;IAyClC,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,2BAA2B,CAA+B;IAElE,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,wBAAwB;IA4BhC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,0BAA0B;YAsBpB,0BAA0B;IAmExC,OAAO,CAAC,iBAAiB;YAmBX,0BAA0B;IAuExC,OAAO,CAAC,kBAAkB;IA6C1B,OAAO,CAAC,gBAAgB;IAmHxB,OAAO,CAAC,kBAAkB;IA4C1B,OAAO,CAAC,oBAAoB,CAA0C;IAEtE,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,4BAA4B;IAsB9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuE3B,KAAK,IAAI,IAAI;IAwBN,YAAY,IAAI,IAAI;IAU3B,OAAO,CAAC,kBAAkB;IAuC1B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkCxB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAY9B,IAAI,IAAI,IAAI;IAWZ,MAAM,IAAI,IAAI;IAYd,cAAc,IAAI,MAAM;IAYxB,YAAY,IAAI,GAAG,EAAE;IAIrB,iBAAiB,IAAI,GAAG;IAIxB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOnC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgChC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA6GhC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkF/B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAetC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3C,WAAW,IAAI,IAAI;IAUnB,iBAAiB,IAAI,IAAI;IAUzB,OAAO,CAAC,cAAc;YAmBR,0BAA0B;IAwCxC,OAAO,CAAC,eAAe;IAwCvB,uBAAuB,IAAI,IAAI;IA4D/B,OAAO,CAAC,4BAA4B;YAoEtB,gCAAgC;IAgBxC,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAkGtD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAmC3C,4BAA4B,IAAI,IAAI;IA4D9B,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IA8DtE,0BAA0B,IAAI,IAAI;IAqK5B,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA4C3C,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAc9C,SAAS,CAAC,eAAe,IAAI,IAAI;IASjC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,eAAe;IAokGrB,OAAO,CAAC,uBAAuB;IA+DjC,OAAO,CAAC,uBAAuB;IAsF/B,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,oBAAoB;IAgW5B,OAAO,CAAC,2BAA2B;IAogBnC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAsMxC,SAAS,CAAC,cAAc,IAAI,IAAI;IAmKzB,gBAAgB,CAAC,MAAM,EAAE,GAAG;IA2CnC,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,sBAAsB;IAsDvB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAetC,oBAAoB,IAAI,IAAI;IAO5B,kBAAkB,IAAI,IAAI;IAOjC,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,qBAAqB;YAYf,wBAAwB;YAuCxB,iBAAiB;IAmB/B,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,wBAAwB;IA0OhC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,wBAAwB;IA4EhC,OAAO,CAAC,qBAAqB;IA8FtB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI;IAiBxE,0BAA0B,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAwB1F,OAAO,CAAC,oCAAoC;IAuB5C,OAAO,CAAC,mBAAmB;IAoF3B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,gBAAgB;IAiBX,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrD,iBAAiB,IAAI,YAAY,GAAG,IAAI;IAWxC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYtC,WAAW,IAAI,YAAY,EAAE;IAW7B,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAW5D,WAAW,IAAI,OAAO;IAOtB,WAAW,IAAI,aAAa,GAAG,IAAI;IAOnC,eAAe,IAAI,OAAO,EAAE;IAO5B,eAAe,IAAI,cAAc,EAAE;IAOnC,qBAAqB,IAAI,OAAO,GAAG,IAAI;IAOvC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgBtC,cAAc,IAAI,OAAO,GAAG,IAAI;IAUhC,kBAAkB,IAAI,OAAO,GAAG,IAAI;IAQpC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IA2DjC,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,iBAAiB;YA8CX,SAAS;YAuBT,eAAe;YAmGf,cAAc;IAgC5B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,qBAAqB;IA6H7B,OAAO,CAAC,wBAAwB;IA2DhC,OAAO,CAAC,kBAAkB;IA8BnB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAWnC,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAQtC,oBAAoB,IAAI,OAAO;IAOtC,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,2BAA2B;IA6DnC,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,sBAAsB;IAsC9B,OAAO,CAAC,qBAAqB;IA4E7B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,WAAW;IAmDnB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,WAAW;YAoBL,QAAQ;YAqGR,UAAU;IAmDxB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,iBAAiB;IA0DzB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,sBAAsB;IAiF9B,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,4BAA4B;IAoDpC,OAAO,CAAC,oBAAoB;IA+BrB,aAAa,IAAI,IAAI;IAarB,aAAa,IAAI,IAAI;IAYrB,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAe9B,kBAAkB,IAAI,OAAO;YAKtB,OAAO;IAgBf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAqD/B"}
|
|
@@ -93,6 +93,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
93
93
|
this.youtubePlayer = null;
|
|
94
94
|
this.youtubePlayerReady = false;
|
|
95
95
|
this.youtubeIframe = null;
|
|
96
|
+
this.isYoutubePiPActive = false;
|
|
97
|
+
this.youtubePiPContainer = null;
|
|
98
|
+
this.youtubePiPOriginalParent = null;
|
|
99
|
+
this.youtubePiPOriginalPosition = '';
|
|
96
100
|
this.youtubeTimeTrackingInterval = null;
|
|
97
101
|
this.clickToUnmuteHandler = null;
|
|
98
102
|
}
|
|
@@ -5563,10 +5567,18 @@ export class WebPlayer extends BasePlayer {
|
|
|
5563
5567
|
.ytp-endscreen-element,
|
|
5564
5568
|
.ytp-ce-element,
|
|
5565
5569
|
.ytp-suggested-action,
|
|
5566
|
-
.ytp-pause-overlay
|
|
5570
|
+
.ytp-pause-overlay,
|
|
5571
|
+
.ytp-endscreen,
|
|
5572
|
+
.ytp-videowall-still,
|
|
5573
|
+
.ytp-ce-covering-overlay,
|
|
5574
|
+
.ytp-ce-element-show,
|
|
5575
|
+
.ytp-cards-button,
|
|
5576
|
+
.ytp-cards-button-icon,
|
|
5577
|
+
.ytp-impression-link {
|
|
5567
5578
|
display: none !important;
|
|
5568
5579
|
visibility: hidden !important;
|
|
5569
5580
|
opacity: 0 !important;
|
|
5581
|
+
pointer-events: none !important;
|
|
5570
5582
|
}
|
|
5571
5583
|
|
|
5572
5584
|
/* Ultra-wide screens */
|
|
@@ -6079,13 +6091,19 @@ export class WebPlayer extends BasePlayer {
|
|
|
6079
6091
|
}
|
|
6080
6092
|
});
|
|
6081
6093
|
skipBackBtn?.addEventListener('click', () => {
|
|
6082
|
-
|
|
6083
|
-
|
|
6094
|
+
const currentTime = this.getCurrentTime();
|
|
6095
|
+
const duration = this.getDuration();
|
|
6096
|
+
if (!isNaN(duration) && duration > 0) {
|
|
6097
|
+
this.seek(Math.max(0, currentTime - 10));
|
|
6098
|
+
this.showShortcutIndicator('-10s');
|
|
6084
6099
|
}
|
|
6085
6100
|
});
|
|
6086
6101
|
skipForwardBtn?.addEventListener('click', () => {
|
|
6087
|
-
|
|
6088
|
-
|
|
6102
|
+
const currentTime = this.getCurrentTime();
|
|
6103
|
+
const duration = this.getDuration();
|
|
6104
|
+
if (!isNaN(duration) && duration > 0) {
|
|
6105
|
+
this.seek(Math.min(duration, currentTime + 10));
|
|
6106
|
+
this.showShortcutIndicator('+10s');
|
|
6089
6107
|
}
|
|
6090
6108
|
});
|
|
6091
6109
|
volumeBtn?.addEventListener('click', (e) => {
|
|
@@ -6755,11 +6773,25 @@ export class WebPlayer extends BasePlayer {
|
|
|
6755
6773
|
togglePlayPause() {
|
|
6756
6774
|
this.debugLog('togglePlayPause called, video state:', {
|
|
6757
6775
|
videoExists: !!this.video,
|
|
6758
|
-
|
|
6776
|
+
youtubePlayerExists: !!this.youtubePlayer,
|
|
6777
|
+
youtubePlayerReady: this.youtubePlayerReady,
|
|
6759
6778
|
playerState: this.state
|
|
6760
6779
|
});
|
|
6780
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
6781
|
+
const playerState = this.youtubePlayer.getPlayerState();
|
|
6782
|
+
this.debugLog('YouTube player state:', playerState);
|
|
6783
|
+
if (playerState === window.YT.PlayerState.PLAYING) {
|
|
6784
|
+
this.debugLog('YouTube video is playing, calling pause()');
|
|
6785
|
+
this.pause();
|
|
6786
|
+
}
|
|
6787
|
+
else {
|
|
6788
|
+
this.debugLog('YouTube video is paused, calling play()');
|
|
6789
|
+
this.play();
|
|
6790
|
+
}
|
|
6791
|
+
return;
|
|
6792
|
+
}
|
|
6761
6793
|
if (!this.video) {
|
|
6762
|
-
this.debugError('No video element available for toggle');
|
|
6794
|
+
this.debugError('No video element or YouTube player available for toggle');
|
|
6763
6795
|
return;
|
|
6764
6796
|
}
|
|
6765
6797
|
if (this.video.paused) {
|
|
@@ -7015,12 +7047,27 @@ export class WebPlayer extends BasePlayer {
|
|
|
7015
7047
|
}
|
|
7016
7048
|
updateTimeDisplay() {
|
|
7017
7049
|
const timeDisplay = document.getElementById('uvf-time-display');
|
|
7018
|
-
if (timeDisplay
|
|
7019
|
-
|
|
7020
|
-
|
|
7021
|
-
|
|
7022
|
-
|
|
7050
|
+
if (!timeDisplay)
|
|
7051
|
+
return;
|
|
7052
|
+
let current = 0;
|
|
7053
|
+
let duration = 0;
|
|
7054
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
7055
|
+
try {
|
|
7056
|
+
current = this.youtubePlayer.getCurrentTime() || 0;
|
|
7057
|
+
duration = this.youtubePlayer.getDuration() || 0;
|
|
7058
|
+
}
|
|
7059
|
+
catch (error) {
|
|
7060
|
+
this.debugWarn('Error getting YouTube player time:', error);
|
|
7061
|
+
}
|
|
7062
|
+
}
|
|
7063
|
+
else if (this.video) {
|
|
7064
|
+
current = this.video.currentTime || 0;
|
|
7065
|
+
duration = this.video.duration || 0;
|
|
7023
7066
|
}
|
|
7067
|
+
const currentFormatted = this.formatTime(current);
|
|
7068
|
+
const durationFormatted = this.formatTime(duration);
|
|
7069
|
+
timeDisplay.textContent = `${currentFormatted} / ${durationFormatted}`;
|
|
7070
|
+
this.debugLog('Time display updated:', `${currentFormatted} / ${durationFormatted}`);
|
|
7024
7071
|
}
|
|
7025
7072
|
showControls() {
|
|
7026
7073
|
if (this.hideControlsTimeout)
|
|
@@ -7785,9 +7832,17 @@ export class WebPlayer extends BasePlayer {
|
|
|
7785
7832
|
this.video.volume = Math.max(0, Math.min(1, this.video.volume + delta));
|
|
7786
7833
|
}
|
|
7787
7834
|
setSpeed(speed) {
|
|
7788
|
-
if (
|
|
7789
|
-
|
|
7790
|
-
|
|
7835
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
7836
|
+
try {
|
|
7837
|
+
this.youtubePlayer.setPlaybackRate(speed);
|
|
7838
|
+
}
|
|
7839
|
+
catch (error) {
|
|
7840
|
+
this.debugWarn('YouTube playback rate not supported:', error);
|
|
7841
|
+
}
|
|
7842
|
+
}
|
|
7843
|
+
else if (this.video) {
|
|
7844
|
+
this.video.playbackRate = speed;
|
|
7845
|
+
}
|
|
7791
7846
|
document.querySelectorAll('.speed-option').forEach(option => {
|
|
7792
7847
|
option.classList.remove('active');
|
|
7793
7848
|
if (parseFloat(option.dataset.speed || '1') === speed) {
|
|
@@ -7796,6 +7851,16 @@ export class WebPlayer extends BasePlayer {
|
|
|
7796
7851
|
});
|
|
7797
7852
|
}
|
|
7798
7853
|
setQualityByLabel(quality) {
|
|
7854
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
7855
|
+
this.showShortcutIndicator('Quality control not available for YouTube');
|
|
7856
|
+
document.querySelectorAll('.quality-option').forEach(option => {
|
|
7857
|
+
option.classList.remove('active');
|
|
7858
|
+
if (option.dataset.quality === 'auto') {
|
|
7859
|
+
option.classList.add('active');
|
|
7860
|
+
}
|
|
7861
|
+
});
|
|
7862
|
+
return;
|
|
7863
|
+
}
|
|
7799
7864
|
const qualityBadge = document.getElementById('uvf-quality-badge');
|
|
7800
7865
|
document.querySelectorAll('.quality-option').forEach(option => {
|
|
7801
7866
|
option.classList.remove('active');
|
|
@@ -7824,6 +7889,15 @@ export class WebPlayer extends BasePlayer {
|
|
|
7824
7889
|
}
|
|
7825
7890
|
async togglePiP() {
|
|
7826
7891
|
try {
|
|
7892
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
7893
|
+
if (this.isYoutubePiPActive) {
|
|
7894
|
+
await this.exitYoutubePiP();
|
|
7895
|
+
}
|
|
7896
|
+
else {
|
|
7897
|
+
await this.enterYoutubePiP();
|
|
7898
|
+
}
|
|
7899
|
+
return;
|
|
7900
|
+
}
|
|
7827
7901
|
if (document.pictureInPictureElement) {
|
|
7828
7902
|
await this.exitPictureInPicture();
|
|
7829
7903
|
}
|
|
@@ -7835,6 +7909,116 @@ export class WebPlayer extends BasePlayer {
|
|
|
7835
7909
|
console.error('PiP toggle failed:', error);
|
|
7836
7910
|
}
|
|
7837
7911
|
}
|
|
7912
|
+
async enterYoutubePiP() {
|
|
7913
|
+
try {
|
|
7914
|
+
const playerWrapper = this.playerWrapper || this.container?.querySelector('.uvf-player-wrapper');
|
|
7915
|
+
if (!playerWrapper) {
|
|
7916
|
+
this.showNotification('Player container not found');
|
|
7917
|
+
return;
|
|
7918
|
+
}
|
|
7919
|
+
this.youtubePiPOriginalParent = playerWrapper.parentElement;
|
|
7920
|
+
this.youtubePiPOriginalPosition = playerWrapper.getAttribute('style') || '';
|
|
7921
|
+
this.youtubePiPContainer = document.createElement('div');
|
|
7922
|
+
this.youtubePiPContainer.id = 'youtube-pip-container';
|
|
7923
|
+
this.youtubePiPContainer.style.cssText = `
|
|
7924
|
+
position: fixed;
|
|
7925
|
+
bottom: 20px;
|
|
7926
|
+
right: 20px;
|
|
7927
|
+
width: 400px;
|
|
7928
|
+
height: 225px;
|
|
7929
|
+
z-index: 9999;
|
|
7930
|
+
background: #000;
|
|
7931
|
+
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
7932
|
+
border-radius: 8px;
|
|
7933
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
|
|
7934
|
+
cursor: grab;
|
|
7935
|
+
overflow: hidden;
|
|
7936
|
+
`;
|
|
7937
|
+
let isDragging = false;
|
|
7938
|
+
let offset = { x: 0, y: 0 };
|
|
7939
|
+
this.youtubePiPContainer.addEventListener('mousedown', (e) => {
|
|
7940
|
+
if (e.target.closest('.youtube-pip-controls'))
|
|
7941
|
+
return;
|
|
7942
|
+
isDragging = true;
|
|
7943
|
+
offset.x = e.clientX - this.youtubePiPContainer.getBoundingClientRect().left;
|
|
7944
|
+
offset.y = e.clientY - this.youtubePiPContainer.getBoundingClientRect().top;
|
|
7945
|
+
this.youtubePiPContainer.style.cursor = 'grabbing';
|
|
7946
|
+
});
|
|
7947
|
+
document.addEventListener('mousemove', (e) => {
|
|
7948
|
+
if (!isDragging || !this.youtubePiPContainer)
|
|
7949
|
+
return;
|
|
7950
|
+
this.youtubePiPContainer.style.left = (e.clientX - offset.x) + 'px';
|
|
7951
|
+
this.youtubePiPContainer.style.top = (e.clientY - offset.y) + 'px';
|
|
7952
|
+
});
|
|
7953
|
+
document.addEventListener('mouseup', () => {
|
|
7954
|
+
isDragging = false;
|
|
7955
|
+
if (this.youtubePiPContainer)
|
|
7956
|
+
this.youtubePiPContainer.style.cursor = 'grab';
|
|
7957
|
+
});
|
|
7958
|
+
const closeBtn = document.createElement('button');
|
|
7959
|
+
closeBtn.className = 'youtube-pip-controls';
|
|
7960
|
+
closeBtn.innerHTML = '✕';
|
|
7961
|
+
closeBtn.style.cssText = `
|
|
7962
|
+
position: absolute;
|
|
7963
|
+
top: 8px;
|
|
7964
|
+
right: 8px;
|
|
7965
|
+
width: 32px;
|
|
7966
|
+
height: 32px;
|
|
7967
|
+
background: rgba(255, 255, 255, 0.2);
|
|
7968
|
+
border: none;
|
|
7969
|
+
color: white;
|
|
7970
|
+
font-size: 18px;
|
|
7971
|
+
border-radius: 4px;
|
|
7972
|
+
cursor: pointer;
|
|
7973
|
+
z-index: 10000;
|
|
7974
|
+
transition: background 0.2s;
|
|
7975
|
+
`;
|
|
7976
|
+
closeBtn.addEventListener('hover', () => {
|
|
7977
|
+
closeBtn.style.background = 'rgba(255, 255, 255, 0.4)';
|
|
7978
|
+
});
|
|
7979
|
+
closeBtn.addEventListener('click', async () => {
|
|
7980
|
+
await this.exitYoutubePiP();
|
|
7981
|
+
});
|
|
7982
|
+
this.youtubePiPContainer.appendChild(playerWrapper);
|
|
7983
|
+
this.youtubePiPContainer.appendChild(closeBtn);
|
|
7984
|
+
document.body.appendChild(this.youtubePiPContainer);
|
|
7985
|
+
playerWrapper.style.width = '100%';
|
|
7986
|
+
playerWrapper.style.height = '100%';
|
|
7987
|
+
this.isYoutubePiPActive = true;
|
|
7988
|
+
this.showNotification('PiP mode active (drag to move)');
|
|
7989
|
+
this.debugLog('YouTube PiP mode enabled');
|
|
7990
|
+
}
|
|
7991
|
+
catch (error) {
|
|
7992
|
+
this.debugError('Failed to enter YouTube PiP:', error);
|
|
7993
|
+
this.showNotification('PiP mode failed');
|
|
7994
|
+
}
|
|
7995
|
+
}
|
|
7996
|
+
async exitYoutubePiP() {
|
|
7997
|
+
try {
|
|
7998
|
+
if (!this.youtubePiPContainer || !this.youtubePiPOriginalParent) {
|
|
7999
|
+
return;
|
|
8000
|
+
}
|
|
8001
|
+
const playerWrapper = this.playerWrapper || this.container?.querySelector('.uvf-player-wrapper');
|
|
8002
|
+
if (playerWrapper) {
|
|
8003
|
+
if (this.youtubePiPOriginalPosition) {
|
|
8004
|
+
playerWrapper.setAttribute('style', this.youtubePiPOriginalPosition);
|
|
8005
|
+
}
|
|
8006
|
+
else {
|
|
8007
|
+
playerWrapper.removeAttribute('style');
|
|
8008
|
+
}
|
|
8009
|
+
this.youtubePiPOriginalParent.appendChild(playerWrapper);
|
|
8010
|
+
}
|
|
8011
|
+
this.youtubePiPContainer.remove();
|
|
8012
|
+
this.youtubePiPContainer = null;
|
|
8013
|
+
this.youtubePiPOriginalParent = null;
|
|
8014
|
+
this.isYoutubePiPActive = false;
|
|
8015
|
+
this.showNotification('PiP mode closed');
|
|
8016
|
+
this.debugLog('YouTube PiP mode disabled');
|
|
8017
|
+
}
|
|
8018
|
+
catch (error) {
|
|
8019
|
+
this.debugError('Failed to exit YouTube PiP:', error);
|
|
8020
|
+
}
|
|
8021
|
+
}
|
|
7838
8022
|
setupCastContextSafe() {
|
|
7839
8023
|
try {
|
|
7840
8024
|
const castNs = window.cast;
|
|
@@ -8282,6 +8466,13 @@ export class WebPlayer extends BasePlayer {
|
|
|
8282
8466
|
}
|
|
8283
8467
|
detectAvailableSubtitles() {
|
|
8284
8468
|
this.availableSubtitles = [{ value: 'off', label: 'Off' }];
|
|
8469
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
8470
|
+
this.availableSubtitles.push({
|
|
8471
|
+
value: 'youtube-cc',
|
|
8472
|
+
label: 'YouTube Captions'
|
|
8473
|
+
});
|
|
8474
|
+
return;
|
|
8475
|
+
}
|
|
8285
8476
|
if (this.video?.textTracks) {
|
|
8286
8477
|
Array.from(this.video.textTracks).forEach((track, index) => {
|
|
8287
8478
|
if (track.kind === 'subtitles' || track.kind === 'captions') {
|
|
@@ -8528,6 +8719,26 @@ export class WebPlayer extends BasePlayer {
|
|
|
8528
8719
|
}
|
|
8529
8720
|
setSubtitle(subtitle) {
|
|
8530
8721
|
this.currentSubtitle = subtitle;
|
|
8722
|
+
if (this.youtubePlayer && this.youtubePlayerReady) {
|
|
8723
|
+
if (subtitle === 'off') {
|
|
8724
|
+
try {
|
|
8725
|
+
this.youtubePlayer.setOption('captions', 'fontSize', -1);
|
|
8726
|
+
}
|
|
8727
|
+
catch (e) {
|
|
8728
|
+
this.debugWarn('YouTube caption control limited:', e);
|
|
8729
|
+
}
|
|
8730
|
+
}
|
|
8731
|
+
else if (subtitle === 'youtube-cc') {
|
|
8732
|
+
try {
|
|
8733
|
+
this.youtubePlayer.setOption('captions', 'fontSize', 0);
|
|
8734
|
+
}
|
|
8735
|
+
catch (e) {
|
|
8736
|
+
this.debugWarn('YouTube caption control limited:', e);
|
|
8737
|
+
}
|
|
8738
|
+
}
|
|
8739
|
+
this.showShortcutIndicator('Subtitle language selection not available for YouTube');
|
|
8740
|
+
return;
|
|
8741
|
+
}
|
|
8531
8742
|
if (subtitle === 'off') {
|
|
8532
8743
|
if (this.video?.textTracks) {
|
|
8533
8744
|
Array.from(this.video.textTracks).forEach(track => {
|