@gcorevideo/player 2.28.30 → 2.28.36

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.
Files changed (37) hide show
  1. package/README.md +22 -1
  2. package/assets/{subtitles → cc}/style.scss +5 -0
  3. package/dist/core.js +17 -23
  4. package/dist/index.css +241 -237
  5. package/dist/index.embed.js +79 -59
  6. package/dist/index.js +137 -119
  7. package/docs/api/player.closedcaptionspluginsettings.md +1 -0
  8. package/docs/api/player.md +9 -0
  9. package/docs/api/player.mediacontrol.md +16 -0
  10. package/docs/api/player.thumbnails.md +1 -1
  11. package/lib/Player.d.ts.map +1 -1
  12. package/lib/playback/BasePlayback.d.ts +1 -0
  13. package/lib/playback/BasePlayback.d.ts.map +1 -1
  14. package/lib/playback/BasePlayback.js +3 -0
  15. package/lib/playback/dash-playback/DashPlayback.d.ts +1 -0
  16. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  17. package/lib/playback/dash-playback/DashPlayback.js +9 -22
  18. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  19. package/lib/playback/hls-playback/HlsPlayback.js +4 -0
  20. package/lib/plugins/subtitles/ClosedCaptions.d.ts +7 -3
  21. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  22. package/lib/plugins/subtitles/ClosedCaptions.js +66 -42
  23. package/lib/testUtils.d.ts +1 -0
  24. package/lib/testUtils.d.ts.map +1 -1
  25. package/lib/testUtils.js +3 -0
  26. package/package.json +4 -1
  27. package/src/Player.ts +12 -12
  28. package/src/playback/BasePlayback.ts +4 -0
  29. package/src/playback/dash-playback/DashPlayback.ts +10 -27
  30. package/src/playback/hls-playback/HlsPlayback.ts +4 -0
  31. package/src/plugins/subtitles/ClosedCaptions.ts +75 -47
  32. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +277 -29
  33. package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +3 -3
  34. package/src/testUtils.ts +3 -0
  35. package/tsconfig.tsbuildinfo +1 -1
  36. /package/assets/{subtitles → cc}/combobox.ejs +0 -0
  37. /package/assets/{subtitles → cc}/string.ejs +0 -0
@@ -11,5 +11,6 @@ Configuration options for the [ClosedCaptions](./player.closedcaptions.md) plugi
11
11
  ```typescript
12
12
  export type ClosedCaptionsPluginSettings = {
13
13
  language?: string;
14
+ mode?: 'native' | 'custom';
14
15
  };
15
16
  ```
@@ -1163,6 +1163,15 @@ Preferred streaming media delivery protocol
1163
1163
 
1164
1164
 
1165
1165
 
1166
+ </td></tr>
1167
+ <tr><td>
1168
+
1169
+ [VTTCueInfo](./player.vttcueinfo.md)
1170
+
1171
+
1172
+ </td><td>
1173
+
1174
+
1166
1175
  </td></tr>
1167
1176
  <tr><td>
1168
1177
 
@@ -274,6 +274,22 @@ Mounts a media control element at a specific location
274
274
  Set the initial volume, which is preserved when playback is interrupted by an advertisement
275
275
 
276
276
 
277
+ </td></tr>
278
+ <tr><td>
279
+
280
+ [setKeepVisible(keepVisible)](./player.mediacontrol.setkeepvisible.md)
281
+
282
+
283
+ </td><td>
284
+
285
+
286
+ </td><td>
287
+
288
+ Set or reset the keep visibility state
289
+
290
+ Keep visibility state controls whether the media control is hidden automatically after a delay, which is a default behaviour.
291
+
292
+
277
293
  </td></tr>
278
294
  <tr><td>
279
295
 
@@ -15,7 +15,7 @@ export declare class Thumbnails extends UICorePlugin
15
15
 
16
16
  ## Remarks
17
17
 
18
- The plugin needs specially crafted VTT file with a thumbnail sprite sheet to work. The VTT consist of timestamp records followed by a thumbnail area
18
+ The plugin needs specially crafted VTT file with a thumbnail sprite sheet to work. The VTT cues refer to a thumbnail, an area within the sprite sheet, to associate with a time span.
19
19
 
20
20
  Configuration options - [ThumbnailsPluginSettings](./player.thumbnailspluginsettings.md)
21
21
 
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAEjB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGjE;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,IACjD,CAAC,SAAS,WAAW,CAAC,IAAI,GACtB,CAAC,MAAM,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,YAAY,GAChC,CAAC,MAAM,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,UAAU,GAC9B,CAAC,YAAY,CAAC,GACd,CAAC,SAAS,WAAW,CAAC,MAAM,GAC1B,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACnC,CAAC,SAAS,WAAW,CAAC,UAAU,GAC9B,CAAC,OAAO,CAAC,GACT,CAAC,SAAS,WAAW,CAAC,KAAK,GACzB,CAAC,aAAa,CAAC,GACf,EAAE,CAAA;AAElB;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI,CACtD,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAA;AAeT;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAI3D;;;;;;;GAOG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,MAAM,EAAE,YAAY;IAOhC;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIlE;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAInE;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI;IAgB1C;;OAEG;IACH,OAAO;IAQP;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAOxB;;;;;;OAMG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;OAKG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE;IAyBtC;;OAEG;IACH,IAAI;IAIJ;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,IAAI;IAIJ;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa;IAI7B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAMnB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAMxB;;OAEG;IACH,IAAI;IAIJ;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,uBAAuB;IAgBrD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAOpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAUnC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAgC;IAE1D,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;YAMJ,MAAM;IAkBpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,MAAM,CAgCb;IAED,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,iBAAiB;CA+B1B"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAEjB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGjE;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,IACjD,CAAC,SAAS,WAAW,CAAC,IAAI,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,YAAY,GAClC,CAAC,MAAM,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,UAAU,GAChC,CAAC,YAAY,CAAC,GACd,CAAC,SAAS,WAAW,CAAC,MAAM,GAC5B,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACnC,CAAC,SAAS,WAAW,CAAC,UAAU,GAChC,CAAC,OAAO,CAAC,GACT,CAAC,SAAS,WAAW,CAAC,KAAK,GAC3B,CAAC,aAAa,CAAC,GACf,EAAE,CAAA;AAEN;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI,CACtD,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAA;AAeT;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAI3D;;;;;;;GAOG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,MAAM,EAAE,YAAY;IAOhC;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIlE;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAInE;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI;IAgB1C;;OAEG;IACH,OAAO;IAQP;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAOxB;;;;;;OAMG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;OAKG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE;IAyBtC;;OAEG;IACH,IAAI;IAIJ;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,IAAI;IAIJ;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa;IAI7B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAMnB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAMxB;;OAEG;IACH,IAAI;IAIJ;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,uBAAuB;IAgBrD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAOpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAUnC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAgC;IAE1D,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;YAMJ,MAAM;IAkBpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,MAAM,CAgCb;IAED,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,iBAAiB;CA+B1B"}
@@ -12,5 +12,6 @@ export declare class BasePlayback extends HTML5Video {
12
12
  */
13
13
  setPlaybackRate(rate: number): void;
14
14
  _onPlaying(): void;
15
+ setTextTrack(id: number): void;
15
16
  }
16
17
  //# sourceMappingURL=BasePlayback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAK5E;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,IAAI,YAAY,YAEf;IAED,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BlD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM;IAInB,UAAU;CAIpB"}
1
+ {"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAK5E;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,IAAI,YAAY,YAEf;IAED,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BlD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM;IAInB,UAAU;IAKnB,YAAY,CAAC,EAAE,EAAE,MAAM;CAGxB"}
@@ -40,4 +40,7 @@ export class BasePlayback extends HTML5Video {
40
40
  super._onPlaying();
41
41
  this.trigger(Events.PLAYBACK_MEDIACONTROL_ENABLE);
42
42
  }
43
+ setTextTrack(id) {
44
+ // noop
45
+ }
43
46
  }
@@ -12,6 +12,7 @@ type LocalTimeCorrelation = {
12
12
  export default class DashPlayback extends BasePlayback {
13
13
  _levels: QualityLevel[];
14
14
  _currentLevel: number;
15
+ _currentTextTrackId: number;
15
16
  _durationExcludesAfterLiveSyncPoint: boolean;
16
17
  _isReadyState: boolean;
17
18
  _playableRegionDuration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,QAAQ,EAAyB,MAAM,cAAc,CAAA;AAG3E,OAAO,EAGL,gBAAgB,EAKhB,aAAa,EAQd,MAAM,QAAQ,CAAA;AAEf,OAAO,EAGL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,UAAU,EACX,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAMzE,KAAK,YAAY,GACb,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,IAAI,GACpB,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,KAAK,CAAA;AAEzB,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAID,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,aAAa,EAAE,MAAM,CAAO;IAK5B,mCAAmC,EAAE,OAAO,CAAQ;IAEpD,aAAa,EAAE,OAAO,CAAQ;IAI9B,uBAAuB,EAAE,MAAM,CAAI;IASnC,wBAAwB,EAAE,MAAM,CAAI;IAEpC,aAAa,EAAE,YAAY,CAAe;IAG1C,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IAEzC,gBAAgB,EAAE,SAAS,CAAI;IAE/B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAErC,2BAA2B,EAAE,MAAM,CAAI;IAEvC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAO;IAEtC,eAAe,EAAE,YAAY,CAA2B;IAIxD,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAI9D,wBAAwB,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAE5D,kBAAkB,UAAQ;IAE1B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAO;IAEzC,gBAAgB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAO;IAE9D,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEnD,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEtD,IAAI,IAAI,WAEP;IAED,IAAI,MAAM,IAAI,YAAY,EAAE,CAE3B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,OAAO,YAEV;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,EAoC1B;IAED,IAAI,UAAU,WAUb;IAED,IAAI,IAAI,WAEP;IAID,IAAI,sBAAsB,WAczB;IAID,IAAI,oBAAoB,WAgBvB;IAED,IAAI,SAAS,WAKZ;gBAEW,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG;IAOzD,MAAM;IA4GN,MAAM;IAMN,MAAM;YAKW,SAAS;IAI1B,qBAAqB;IAQrB,oBAAoB;IAapB,WAAW,IAAI,SAAS;IAQxB,cAAc,IAAI,SAAS;IAO3B,kBAAkB,IAAI,SAAS;IAItB,cAAc,CAAC,UAAU,EAAE,MAAM;IAejC,IAAI,CAAC,IAAI,EAAE,SAAS;IAgB7B,eAAe;IAIf,UAAU,CAAC,MAAM,EAAE,OAAO;IAMjB,eAAe;IAgBxB,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,eAAe,CAkCtB;IAED,OAAO,CAAC,YAAY;IAiBX,aAAa;IAqBb,iBAAiB;IAW1B,IAAI,UAAU,YAQb;IAEQ,WAAW;IAgBX,IAAI;IAMJ,KAAK;IAUL,IAAI;IAQb,OAAO,CAAC,eAAe;IAuBd,OAAO;IAMhB,mBAAmB;IASnB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAQxB,eAAe;IAIf,aAAa;IAIb,OAAO,CAAC,QAAQ;IAMhB,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,IAAI,WAAW,IAAI,UAAU,EAAE,CAI9B;IAGD,IAAI,iBAAiB,IAAI,UAAU,GAAG,IAAI,CAOzC;IAEQ,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQlC,IAAI,CAAC,MAAM,EAAE,MAAM;IAQ5B,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,sBAAsB;IAKtB,YAAY,CAAC,EAAE,EAAE,MAAM;IAIvB;;OAEG;IACH,IAAI,oBAAoB;;;;;;;;;QAGvB;IAED,OAAO,CAAC,aAAa;CAYtB"}
1
+ {"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ const T = 'playback.dash';
16
16
  export default class DashPlayback extends BasePlayback {
17
17
  _levels = [];
18
18
  _currentLevel = AUTO;
19
+ _currentTextTrackId = -1;
19
20
  // true when the actual duration is longer than hlsjs's live sync point
20
21
  // when this is false playableRegionDuration will be the actual duration
21
22
  // when this is true playableRegionDuration will exclude the time after the sync point
@@ -148,7 +149,11 @@ export default class DashPlayback extends BasePlayback {
148
149
  streaming: {
149
150
  text: {
150
151
  defaultEnabled: false,
151
- dispatchForManualRendering: true,
152
+ // NOTE: dispatchForManualRendering is not correctly implemented in DASH.js;
153
+ // it does not work when there are multiple text tracks.
154
+ // CUE_ENTER and CUE_EXIT events might be dispatched additionally
155
+ // for a track, other than the currently active one.
156
+ // dispatchForManualRendering: true, // TODO only when useNativeSubtitles is not true?
152
157
  },
153
158
  },
154
159
  }, this.options.dash);
@@ -192,24 +197,6 @@ export default class DashPlayback extends BasePlayback {
192
197
  this._dash.on(MediaPlayer.events.PLAYBACK_RATE_CHANGED, (e) => {
193
198
  this.trigger(PlaybackEvents.PLAYBACK_RATE_CHANGED, e.playbackRate);
194
199
  });
195
- this._dash.on(MediaPlayer.events.TRACK_CHANGE_RENDERED, (e) => {
196
- if (e.mediaType === 'audio') {
197
- this.trigger(Events.PLAYBACK_AUDIO_CHANGED, toClapprTrack(e.newMediaInfo));
198
- }
199
- });
200
- this._dash.on(MediaPlayer.events.CUE_ENTER, (e) => {
201
- this.oncueenter?.({
202
- end: e.end,
203
- id: e.id,
204
- start: e.start,
205
- text: e.text,
206
- });
207
- });
208
- this._dash.on(MediaPlayer.events.CUE_EXIT, (e) => {
209
- this.oncueexit?.({
210
- id: e.id,
211
- });
212
- });
213
200
  }
214
201
  render() {
215
202
  this._ready();
@@ -519,14 +506,14 @@ export default class DashPlayback extends BasePlayback {
519
506
  this._dash?.setTextTrack(this.closedCaptionsTrackId);
520
507
  }
521
508
  setTextTrack(id) {
509
+ this._currentTextTrackId = id;
522
510
  this._dash?.setTextTrack(id);
523
511
  }
524
512
  /**
525
513
  * @override
526
514
  */
527
515
  get closedCaptionsTracks() {
528
- const tt = this.getTextTracks();
529
- return tt;
516
+ return this.getTextTracks();
530
517
  }
531
518
  getTextTracks() {
532
519
  return this._dash?.getTracksFor('text').map((t, index) => ({
@@ -536,7 +523,7 @@ export default class DashPlayback extends BasePlayback {
536
523
  id: index,
537
524
  label: getTextTrackLabel(t) || "",
538
525
  language: t.lang,
539
- mode: "hidden",
526
+ mode: this._currentTextTrackId === index ? "showing" : "hidden",
540
527
  },
541
528
  })) || [];
542
529
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EACZ,MAAM,IAAI,SAAS,EAMnB,KAAK,kBAAkB,EAMxB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAIL,YAAY,EAEZ,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAmCzE,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IACnD,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,OAAO,CAAC,gBAAgB,CAAwB;IAEhD,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,mCAAmC,CAAQ;IAEnD,OAAO,CAAC,8BAA8B,CAAI;IAE1C,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,eAAe,CAA4B;IAEnD,OAAO,CAAC,OAAO,CAA8B;IAE7C,OAAO,CAAC,0BAA0B,CAA+B;IAEjE,OAAO,CAAC,wBAAwB,CAA+B;IAE/D,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,uBAAuB,CAAI;IAEnC,OAAO,CAAC,aAAa,CAA6C;IAElE,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,wBAAwB,CAAI;IAEpC,OAAO,CAAC,gBAAgB,CAAsB;IAE9C,OAAO,CAAC,yBAAyB,CAAI;IAErC,OAAO,CAAC,yBAAyB,CAAQ;IAEzC,OAAO,CAAC,uBAAuB,CAAQ;IAEvC,OAAO,CAAC,sBAAsB,CAAsB;IAEpD,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEnD,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEtD,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,YAAY,CAAsB;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,IAAI,MAAM,mBAET;IAED,IAAI,YAAY,IAIK,MAAM,CAF1B;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,EAS1B;IAED,IAAI,OAAO,WAGV;IAED,IAAI,sBAAsB,SAIzB;IAED,OAAO,KAAK,UAAU,GASrB;IAED,OAAO,KAAK,IAAI,GAEf;IAID,OAAO,KAAK,sBAAsB,GAcjC;IAID,IAAI,oBAAoB,WAevB;IAED,OAAO,KAAK,SAAS,GAEpB;IAmBD,OAAO,KAAK,2BAA2B,GAMtC;IAED,IAAI,iBAAiB,kBAEpB;IAED,IAAI,cAAc;;MAEjB;IAED,IAAI,eAAe,QAKlB;IAED,IAAI,WAAW,QAEd;IAED,IAAI,gBAAgB,kBAcnB;IAED,MAAM,KAAK,KAAK,iBAEf;gBAEW,GAAG,IAAI,EAAE,GAAG,EAAE;IAU1B,OAAO,CAAC,gBAAgB;IAmDxB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;IAqExB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,qBAAqB;cASV,MAAM;cAMN,MAAM;IAKzB,OAAO,CAAC,QAAQ;cA0BG,SAAS,CAAC,MAAM,EAAE,MAAM;IAE3C,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,kBAAkB;IAO1B,WAAW;IAIX,cAAc;IAad,kBAAkB;IAIlB,cAAc,CAAC,UAAU,EAAE,MAAM;IAOjC,IAAI,CAAC,IAAI,EAAE,MAAM;IAejB,eAAe;IAIf,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IA4GrB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAUX,aAAa;IAkBb,iBAAiB;IAUjB,WAAW;IAwCpB,OAAO,CAAC,WAAW;IAcV,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,IAAI;IAUJ,KAAK;IAUd,IAAI;IAQJ,OAAO;IAMP,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,eAAe;IAkJvB,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,kBAAkB;IAOvE,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAmBvE,IAAI,UAAU,YAUb;IAED,eAAe;IAIf,aAAa;IAIb,OAAO,CAAC,YAAY;IAUpB,IAAI,WAAW,IAAI,UAAU,EAAE,CAG9B;IAGD,IAAI,iBAAiB,IAAI,UAAU,GAAG,IAAI,CAQzC;IAED,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKlC,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,qBAAqB;IAU7B,YAAY,CAAC,EAAE,EAAE,MAAM;IAQvB;;OAEG;IACH,IAAI,oBAAoB;;;;;;;;QAEvB;IAED,aAAa;;;;;;;;;CAWd"}
@@ -864,7 +864,11 @@ export default class HlsPlayback extends BasePlayback {
864
864
  this.trigger(Events.PLAYBACK_AUDIO_CHANGED, toClapprTrack(track));
865
865
  }
866
866
  setTextTrack(id) {
867
+ if (id === this._hls.subtitleTrack) {
868
+ return;
869
+ }
867
870
  this._hls.subtitleTrack = id;
871
+ this.cues = [];
868
872
  }
869
873
  /**
870
874
  * @override
@@ -1,5 +1,5 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
- import '../../../assets/subtitles/style.scss';
2
+ import '../../../assets/cc/style.scss';
3
3
  /**
4
4
  * Configuration options for the {@link ClosedCaptions} plugin.
5
5
  * @public
@@ -11,6 +11,9 @@ export type ClosedCaptionsPluginSettings = {
11
11
  language?: string;
12
12
  /**
13
13
  * Whether to use builtin subtitles.
14
+ *
15
+ * native: video player element renders the subtitles
16
+ * custom: plugin manages the subtitles rendition
14
17
  */
15
18
  mode?: 'native' | 'custom';
16
19
  };
@@ -50,9 +53,10 @@ export type ClosedCaptionsPluginSettings = {
50
53
  * ```
51
54
  */
52
55
  export declare class ClosedCaptions extends UICorePlugin {
53
- private isPreselectedApplied;
56
+ private isSelectedApplied;
54
57
  private active;
55
58
  private open;
59
+ private userSelectedItemId;
56
60
  private track;
57
61
  private tracks;
58
62
  private $line;
@@ -116,7 +120,7 @@ export declare class ClosedCaptions extends UICorePlugin {
116
120
  private findById;
117
121
  private selectItem;
118
122
  private onItemSelect;
119
- private applyPreselectedSubtitles;
123
+ private applySelectedSubtitles;
120
124
  private hideMenu;
121
125
  private toggleMenu;
122
126
  private setKeepVisible;
@@ -1 +1 @@
1
- {"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,sCAAsC,CAAA;AAkB7C;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC3B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEhE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAE3D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAI9B;IAED,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,IAAI;IAYJ;;OAEG;IACH,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IA+Bf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;IAOb,OAAO,KAAK,kBAAkB,GAO7B;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,QAEvB;IAED,OAAO,KAAK,aAAa,QAMxB;IAED,OAAO,CAAC,SAAS,CAA+C;CACjE"}
1
+ {"version":3,"file":"ClosedCaptions.d.ts","sourceRoot":"","sources":["../../../src/plugins/subtitles/ClosedCaptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAwB,MAAM,cAAc,CAAA;AAOzE,OAAO,+BAA+B,CAAA;AAmBtC;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC3B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,kBAAkB,CAAa;IAEvC,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,KAAK,CAA2B;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEhE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAE3D;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED,OAAO,KAAK,mBAAmB,GAI9B;IAED,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,IAAI;IAcJ;;OAEG;IACH,IAAI;IAgBJ,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACM,MAAM;IAmCf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;IAOb,OAAO,KAAK,kBAAkB,GAO7B;IAED,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,QAEvB;IAED,OAAO,KAAK,aAAa,QAMxB;IAED,OAAO,CAAC,SAAS,CAA+C;CACjE"}
@@ -1,18 +1,16 @@
1
1
  import { Events, UICorePlugin, Browser, template, $ } from '@clappr/core';
2
- import { reportError, trace } from '@gcorevideo/utils';
2
+ import { reportError } from '@gcorevideo/utils';
3
3
  import assert from 'assert';
4
4
  import { CLAPPR_VERSION } from '../../build.js';
5
- import '../../../assets/subtitles/style.scss';
5
+ import '../../../assets/cc/style.scss';
6
6
  import subtitlesOffIcon from '../../../assets/icons/new/subtitles-off.svg';
7
7
  import subtitlesOnIcon from '../../../assets/icons/new/subtitles-on.svg';
8
- import comboboxHTML from '../../../assets/subtitles/combobox.ejs';
9
- import stringHTML from '../../../assets/subtitles/string.ejs';
8
+ import comboboxHTML from '../../../assets/cc/combobox.ejs';
9
+ import stringHTML from '../../../assets/cc/string.ejs';
10
10
  import { isFullscreen } from '../utils/fullscreen.js';
11
11
  import { ExtendedEvents } from '../media-control/MediaControl.js';
12
12
  import { mediaControlClickaway } from '../../utils/clickaway.js';
13
13
  const VERSION = '2.19.14';
14
- const LOCAL_STORAGE_CC_ID = 'gplayer.plugins.cc.selected';
15
- const T = 'plugins.cc';
16
14
  /**
17
15
  * `PLUGIN` that provides a UI to select the subtitles when available.
18
16
  * @public
@@ -49,9 +47,10 @@ const T = 'plugins.cc';
49
47
  * ```
50
48
  */
51
49
  export class ClosedCaptions extends UICorePlugin {
52
- isPreselectedApplied = false;
50
+ isSelectedApplied = false;
53
51
  active = false;
54
52
  open = false;
53
+ userSelectedItemId = -1;
55
54
  track = null;
56
55
  tracks = [];
57
56
  $line = null;
@@ -113,8 +112,12 @@ export class ClosedCaptions extends UICorePlugin {
113
112
  const mediaControl = this.core.getPlugin('media_control');
114
113
  assert(mediaControl, 'media_control plugin is required');
115
114
  this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.mount);
115
+ this.listenTo(mediaControl, Events.MEDIACONTROL_SHOW, () => {
116
+ this.$line?.removeClass('media-control-cc-pulled');
117
+ });
116
118
  this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, () => {
117
119
  this.hideMenu();
120
+ this.$line?.addClass('media-control-cc-pulled');
118
121
  });
119
122
  this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, (from) => {
120
123
  if (from !== this.name) {
@@ -149,10 +152,9 @@ export class ClosedCaptions extends UICorePlugin {
149
152
  video.classList.remove('ios-fullscreen');
150
153
  }
151
154
  });
152
- this.isPreselectedApplied = false;
155
+ this.isSelectedApplied = false;
153
156
  }
154
157
  onPlaybackReady() {
155
- trace(`${T} onPlaybackReady`);
156
158
  this.core.activePlayback.oncueenter = (e) => {
157
159
  this.setSubtitleText(e.text);
158
160
  };
@@ -173,23 +175,27 @@ export class ClosedCaptions extends UICorePlugin {
173
175
  this.activateTrack(id);
174
176
  }
175
177
  activateTrack(id) {
176
- if (['dash', 'hls'].includes(this.core.activePlayback?.name)) {
177
- this.core.activePlayback.setTextTrack(id);
178
+ const isManaged = this.core.activePlayback?.name === 'hls';
179
+ this.core.activePlayback.setTextTrack(id);
180
+ if (isManaged) {
181
+ return;
182
+ }
183
+ if (!this.core.activePlayback?.el.textTracks) {
178
184
  return;
179
185
  }
180
- for (const track of this.currentTracks) {
181
- if (track.id === id) {
186
+ for (const [index, track] of Array.from(this.core.activePlayback?.el.textTracks ?? []).entries()) {
187
+ if (index === id) {
182
188
  if (this.useNativeSubtitles) {
183
- track.track.mode = 'showing';
189
+ track.mode = 'showing';
184
190
  }
185
191
  else {
186
- track.track.mode = 'hidden';
192
+ track.mode = 'hidden';
187
193
  }
188
- this.setSubtitleText(this.getSubtitleText(track.track));
189
- track.track.oncuechange = (e) => {
194
+ this.setSubtitleText(this.getSubtitleText(track));
195
+ track.oncuechange = () => {
190
196
  try {
191
- if (track.track.activeCues?.length) {
192
- const html = track.track.activeCues[0].getCueAsHTML();
197
+ if (track.activeCues?.length) {
198
+ const html = track.activeCues[0].getCueAsHTML();
193
199
  this.setSubtitleText(html);
194
200
  }
195
201
  else {
@@ -202,8 +208,8 @@ export class ClosedCaptions extends UICorePlugin {
202
208
  };
203
209
  }
204
210
  else {
205
- track.track.oncuechange = () => { };
206
- track.track.mode = 'disabled';
211
+ track.oncuechange = () => { };
212
+ track.mode = 'disabled';
207
213
  }
208
214
  }
209
215
  }
@@ -211,7 +217,7 @@ export class ClosedCaptions extends UICorePlugin {
211
217
  try {
212
218
  // TODO ensure to apply only once
213
219
  this.currentTracks = this.core.activePlayback.closedCaptionsTracks;
214
- this.applyPreselectedSubtitles();
220
+ this.applySelectedSubtitles();
215
221
  this.render();
216
222
  }
217
223
  catch (error) {
@@ -246,8 +252,10 @@ export class ClosedCaptions extends UICorePlugin {
246
252
  this.$el.find('#gplayer-cc-menu').hide();
247
253
  this.$el.find('#gplayer-cc-button').attr('aria-expanded', 'false');
248
254
  this.$line.hide();
249
- for (const track of this.currentTracks) {
250
- track.track.mode = 'hidden';
255
+ for (const track of this.core.activePlayback.el.textTracks) {
256
+ if (track.mode === 'showing') {
257
+ track.mode = 'hidden';
258
+ }
251
259
  }
252
260
  }
253
261
  /**
@@ -259,7 +267,6 @@ export class ClosedCaptions extends UICorePlugin {
259
267
  if (this.core.activeContainer &&
260
268
  isFullscreen(this.core.activeContainer.el) &&
261
269
  this.currentTrack &&
262
- // this.currentTrack.track.mode &&
263
270
  (Browser.isiOS || this.useNativeSubtitles)) {
264
271
  this.$line.hide();
265
272
  this.currentTrack.track.mode = 'showing';
@@ -301,6 +308,10 @@ export class ClosedCaptions extends UICorePlugin {
301
308
  this.resizeFont();
302
309
  this.clampPopup();
303
310
  this.core.activeContainer.$el.append(this.$line);
311
+ const mc = this.core.getPlugin('media_control');
312
+ if (!mc?.isVisible()) {
313
+ this.$line?.addClass('media-control-cc-pulled');
314
+ }
304
315
  this.updateSelection();
305
316
  this.renderIcon();
306
317
  return this;
@@ -318,22 +329,36 @@ export class ClosedCaptions extends UICorePlugin {
318
329
  }
319
330
  onItemSelect(event) {
320
331
  // event.target does not exist for some reason in tests
321
- const id = (event.target ?? event.currentTarget).dataset?.item ??
322
- '-1';
323
- localStorage.setItem(LOCAL_STORAGE_CC_ID, id); // TODO store language instead?
324
- this.selectItem(this.findById(Number(id)));
332
+ const id = Number((event.target ?? event.currentTarget).dataset?.item ??
333
+ '-1');
334
+ // TODO review, make configurable, and emit event in addition
335
+ // localStorage.setItem(LOCAL_STORAGE_CC_ID, id) // TODO store language instead?
336
+ this.userSelectedItemId = id;
337
+ this.selectItem(this.findById(id));
325
338
  this.hideMenu();
326
339
  return false;
327
340
  }
328
- applyPreselectedSubtitles() {
329
- if (!this.isPreselectedApplied) {
330
- this.isPreselectedApplied = true;
331
- // if the language is undefined, then let the engine decide
332
- // to hide the subtitles forcefully, set the language to 'none'
333
- setTimeout(() => {
334
- this.selectItem(this.tracks.find((t) => this.isPreselectedLanguage(t.track.language)) ?? null);
335
- }, 0);
341
+ applySelectedSubtitles() {
342
+ if (this.isSelectedApplied) {
343
+ return;
344
+ }
345
+ this.isSelectedApplied = true;
346
+ // If user selected a language, activate that
347
+ // Otherwise, if there is no configured language, then let the engine decide
348
+ // To hide the subtitles initially forcefully, set the language to 'none'
349
+ let matcher;
350
+ if (this.userSelectedItemId !== -1) {
351
+ matcher = (track) => track.id === this.userSelectedItemId;
336
352
  }
353
+ else if (this.preselectedLanguage) {
354
+ matcher = (track) => this.isPreselectedLanguage(track.track.language);
355
+ }
356
+ else {
357
+ return;
358
+ }
359
+ setTimeout(() => {
360
+ this.selectItem(this.tracks.find(matcher) ?? null);
361
+ }, 0);
337
362
  }
338
363
  hideMenu() {
339
364
  this.open = false;
@@ -367,10 +392,9 @@ export class ClosedCaptions extends UICorePlugin {
367
392
  return this.$el.find('#gplayer-cc-menu li'); // TODO fix semantically
368
393
  }
369
394
  selectSubtitles() {
370
- const trackId = this.currentTrack?.id ?? -1;
371
- // TODO find out if this is needed
372
- this.core.activePlayback.closedCaptionsTrackId = trackId;
373
- // this.core.activePlayback.closedCaptionsTrackId = -1
395
+ if (this.currentTrack) {
396
+ this.core.activePlayback.closedCaptionsTrackId = this.currentTrack.id;
397
+ }
374
398
  }
375
399
  getSubtitleText(track) {
376
400
  const currentTime = this.core.activePlayback?.getCurrentTime() ?? 0;
@@ -393,7 +417,7 @@ export class ClosedCaptions extends UICorePlugin {
393
417
  this.setSubtitleText('');
394
418
  }
395
419
  updateSelection() {
396
- if (!this.currentTrack) {
420
+ if (this.core.activePlayback.closedCaptionsTrackId === -1) {
397
421
  this.hide();
398
422
  }
399
423
  else {
@@ -65,6 +65,7 @@ export declare function createMockPlayback(name?: string, options?: Record<strin
65
65
  canAutoPlay: import("vitest").Mock<(...args: any[]) => any>;
66
66
  onResize: import("vitest").Mock<(...args: any[]) => any>;
67
67
  setPlaybackRate: import("vitest").Mock<(...args: any[]) => any>;
68
+ setTextTrack: import("vitest").Mock<(...args: any[]) => any>;
68
69
  switchAudioTrack: import("vitest").Mock<(...args: any[]) => any>;
69
70
  trigger: <T extends string | symbol>(event: T, ...args: any[]) => boolean;
70
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,MAAM,MAAM,eAAe,CAAA;AAGlC,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;;;EAuB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,SAAS,EACb,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCtC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAAgD;;;;;;;;;;;;;;;;;;;;;;;;;EA8B3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBAyB/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,MAAM,MAAM,eAAe,CAAA;AAGlC,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;;;EAuB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,SAAS,EACb,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCtC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAAgD;;;;;;;;;;;;;;;;;;;;;;;;;EA8B3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBA2B/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
package/lib/testUtils.js CHANGED
@@ -71,6 +71,7 @@ export function createMockPlayback(name = 'mock', options = {}) {
71
71
  canAutoPlay: vi.fn().mockImplementation(() => true),
72
72
  onResize: vi.fn().mockImplementation(() => true),
73
73
  setPlaybackRate: vi.fn(),
74
+ setTextTrack: vi.fn(),
74
75
  switchAudioTrack: vi.fn(),
75
76
  trigger: emitter.emit,
76
77
  });
@@ -122,6 +123,8 @@ export function createMockMediaControl(core) {
122
123
  // @ts-ignore
123
124
  mediaControl.getAvailablePopupHeight = vi.fn().mockReturnValue(286);
124
125
  // @ts-ignore
126
+ mediaControl.isVisible = vi.fn().mockReturnValue(true);
127
+ // @ts-ignore
125
128
  mediaControl.toggleElement = vi.fn();
126
129
  // @ts-ignore
127
130
  mediaControl.setKeepVisible = vi.fn();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcorevideo/player",
3
- "version": "2.28.30",
3
+ "version": "2.28.36",
4
4
  "description": "Gcore JavaScript video player",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -66,5 +66,8 @@
66
66
  "human-format": "^1.2.1",
67
67
  "mousetrap": "^1.6.5",
68
68
  "videojs-vtt.js": "^0.15.5"
69
+ },
70
+ "overrides": {
71
+ "ua-parser-js": "^1.0.0"
69
72
  }
70
73
  }
package/src/Player.ts CHANGED
@@ -32,18 +32,18 @@ import { SourceController } from './plugins/source-controller/SourceController.j
32
32
  */
33
33
  export type PlayerEventParams<E extends PlayerEvent> =
34
34
  E extends PlayerEvent.Seek
35
- ? [number]
36
- : E extends PlayerEvent.VolumeUpdate
37
- ? [number]
38
- : E extends PlayerEvent.TimeUpdate
39
- ? [TimePosition]
40
- : E extends PlayerEvent.Resize
41
- ? [{ width: number; height: number }]
42
- : E extends PlayerEvent.Fullscreen
43
- ? [boolean]
44
- : E extends PlayerEvent.Error
45
- ? [PlaybackError]
46
- : []
35
+ ? [number]
36
+ : E extends PlayerEvent.VolumeUpdate
37
+ ? [number]
38
+ : E extends PlayerEvent.TimeUpdate
39
+ ? [TimePosition]
40
+ : E extends PlayerEvent.Resize
41
+ ? [{ width: number; height: number }]
42
+ : E extends PlayerEvent.Fullscreen
43
+ ? [boolean]
44
+ : E extends PlayerEvent.Error
45
+ ? [PlaybackError]
46
+ : []
47
47
 
48
48
  /**
49
49
  * Type of a listener callback function for a player event.
@@ -50,4 +50,8 @@ export class BasePlayback extends HTML5Video {
50
50
  super._onPlaying()
51
51
  this.trigger(Events.PLAYBACK_MEDIACONTROL_ENABLE)
52
52
  }
53
+
54
+ setTextTrack(id: number) {
55
+ // noop
56
+ }
53
57
  }