@gcorevideo/player 2.23.1 → 2.23.3

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 (33) hide show
  1. package/assets/bottom-gear/bottomgear.ejs +5 -2
  2. package/dist/core.js +1 -1
  3. package/dist/index.css +1501 -1501
  4. package/dist/index.js +53 -25
  5. package/dist/player.d.ts +67 -53
  6. package/docs/api/{player.mediacontrol.putelement.md → player.clips.gettext.md} +10 -23
  7. package/docs/api/player.clips.md +14 -0
  8. package/docs/api/player.md +9 -0
  9. package/docs/api/player.mediacontrol.md +0 -14
  10. package/docs/api/player.poster.md +2 -10
  11. package/docs/api/player.posterpluginsettings.md +16 -0
  12. package/docs/api/player.thumbnails._constructor_.md +50 -0
  13. package/docs/api/player.thumbnails.md +73 -0
  14. package/docs/api/player.thumbnails.render.md +18 -0
  15. package/docs/api/player.thumbnailspluginsettings.md +4 -4
  16. package/lib/plugins/bottom-gear/BottomGear.d.ts +6 -3
  17. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  18. package/lib/plugins/bottom-gear/BottomGear.js +48 -17
  19. package/lib/plugins/thumbnails/Thumbnails.d.ts.map +1 -1
  20. package/lib/plugins/thumbnails/Thumbnails.js +3 -6
  21. package/lib/testUtils.d.ts +1 -0
  22. package/lib/testUtils.d.ts.map +1 -1
  23. package/lib/testUtils.js +3 -0
  24. package/package.json +1 -1
  25. package/src/plugins/bottom-gear/BottomGear.ts +52 -24
  26. package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +122 -48
  27. package/src/plugins/bottom-gear/__tests__/__snapshots__/BottomGear.test.ts.snap +4 -4
  28. package/src/plugins/thumbnails/Thumbnails.ts +3 -6
  29. package/src/plugins/thumbnails/__tests__/Thumbnails.test.ts +20 -3
  30. package/src/plugins/thumbnails/__tests__/__snapshots__/Thumbnails.test.ts.snap +1 -1
  31. package/src/testUtils.ts +3 -0
  32. package/temp/player.api.json +144 -70
  33. package/tsconfig.tsbuildinfo +1 -1
package/dist/index.js CHANGED
@@ -43303,7 +43303,7 @@ class Player {
43303
43303
  }
43304
43304
  }
43305
43305
 
43306
- var version$1 = "2.23.1";
43306
+ var version$1 = "2.23.3";
43307
43307
 
43308
43308
  var packages = {
43309
43309
  "node_modules/@clappr/core": {
@@ -45082,7 +45082,7 @@ class BigMuteButton extends UICorePlugin {
45082
45082
  }
45083
45083
  }
45084
45084
 
45085
- const pluginHtml$5 = "<button class=\"media-control-button gplayer-lite-btn gcore-skin-button-color gear-icon\" id=\"gear-button\">\n <%= icon %>\n</button>\n<div class=\"gear-wrapper gcore-skin-bg-color\" id=\"gear-options-wrapper\" style=\"display:none\">\n <ul class=\"gear-options-list\" id=\"gear-options\" role=\"menu\"></ul>\n</div>\n";
45085
+ const pluginHtml$5 = "<button class=\"media-control-button gplayer-lite-btn gcore-skin-button-color gear-icon\"\n id=\"gear-button\"\n aria-expanded=\"false\"\n aria-controls=\"gear-options\">\n <%= icon %>\n</button>\n<div class=\"gear-wrapper gcore-skin-bg-color\" id=\"gear-options-wrapper\">\n <ul class=\"gear-options-list\" id=\"gear-options\" role=\"menu\"></ul>\n</div>\n";
45086
45086
 
45087
45087
  const gearIcon = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_660_1503)\">\n <path\n d=\"M19.14 12.94C19.18 12.64 19.2 12.33 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.16 9.47999C21.34 9.33999 21.39 9.06999 21.28 8.86999L19.36 5.54999C19.24 5.32999 18.99 5.25999 18.77 5.32999L16.38 6.28999C15.88 5.90999 15.35 5.58999 14.76 5.34999L14.4 2.80999C14.36 2.56999 14.16 2.39999 13.92 2.39999H10.08C9.83999 2.39999 9.64999 2.56999 9.60999 2.80999L9.24999 5.34999C8.65999 5.58999 8.11999 5.91999 7.62999 6.28999L5.23999 5.32999C5.01999 5.24999 4.76999 5.32999 4.64999 5.54999L2.73999 8.86999C2.61999 9.07999 2.65999 9.33999 2.85999 9.47999L4.88999 11.06C4.83999 11.36 4.79999 11.69 4.79999 12C4.79999 12.31 4.81999 12.64 4.86999 12.94L2.83999 14.52C2.65999 14.66 2.60999 14.93 2.71999 15.13L4.63999 18.45C4.75999 18.67 5.00999 18.74 5.22999 18.67L7.61999 17.71C8.11999 18.09 8.64999 18.41 9.23999 18.65L9.59999 21.19C9.64999 21.43 9.83999 21.6 10.08 21.6H13.92C14.16 21.6 14.36 21.43 14.39 21.19L14.75 18.65C15.34 18.41 15.88 18.09 16.37 17.71L18.76 18.67C18.98 18.75 19.23 18.67 19.35 18.45L21.27 15.13C21.39 14.91 21.34 14.66 21.15 14.52L19.14 12.94ZM12 15.6C10.02 15.6 8.39999 13.98 8.39999 12C8.39999 10.02 10.02 8.39999 12 8.39999C13.98 8.39999 15.6 10.02 15.6 12C15.6 13.98 13.98 15.6 12 15.6Z\"\n fill=\"#C9C9C9\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_660_1503\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n</svg>\n";
45088
45088
 
@@ -45172,6 +45172,8 @@ var GearEvents;
45172
45172
  */
45173
45173
  class BottomGear extends UICorePlugin {
45174
45174
  hd = false;
45175
+ numItems = 0;
45176
+ collapsed = true;
45175
45177
  /**
45176
45178
  * @internal
45177
45179
  */
@@ -45204,7 +45206,7 @@ class BottomGear extends UICorePlugin {
45204
45206
  */
45205
45207
  get events() {
45206
45208
  return {
45207
- 'click #gear-button': 'toggleGearMenu',
45209
+ 'click #gear-button': 'toggleMenu',
45208
45210
  };
45209
45211
  }
45210
45212
  /**
@@ -45212,7 +45214,6 @@ class BottomGear extends UICorePlugin {
45212
45214
  */
45213
45215
  bindEvents() {
45214
45216
  this.listenToOnce(this.core, Events$1.CORE_READY, this.onCoreReady);
45215
- this.listenTo(this.core, Events$1.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
45216
45217
  }
45217
45218
  /**
45218
45219
  * Adds a custom option to the gear menu
@@ -45258,20 +45259,23 @@ class BottomGear extends UICorePlugin {
45258
45259
  this.$el.find('#gear-options').hide();
45259
45260
  });
45260
45261
  }
45262
+ this.numItems++;
45263
+ if (this.numItems > 0) {
45264
+ this.$el.show();
45265
+ }
45261
45266
  return $item;
45262
45267
  }
45263
- onActiveContainerChanged() {
45264
- trace(`${T$g} onActiveContainerChanged`);
45265
- this.bindContainerEvents();
45266
- }
45267
- bindContainerEvents() {
45268
+ bindContainerEvents(container) {
45268
45269
  trace(`${T$g} bindContainerEvents`);
45269
- this.listenTo(this.core.activeContainer, Events$1.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
45270
+ this.listenTo(container, Events$1.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
45271
+ this.listenTo(container, Events$1.CONTAINER_CLICK, () => {
45272
+ this.collapse();
45273
+ });
45270
45274
  }
45271
45275
  highDefinitionUpdate(isHd) {
45272
45276
  trace(`${T$g} highDefinitionUpdate`, { isHd });
45273
45277
  this.hd = isHd;
45274
- this.$el.find('.gear-icon').html(isHd ? gearHdIcon : gearIcon);
45278
+ this.$el.find('#gear-button').html(isHd ? gearHdIcon : gearIcon);
45275
45279
  }
45276
45280
  /**
45277
45281
  * @internal
@@ -45283,11 +45287,13 @@ class BottomGear extends UICorePlugin {
45283
45287
  return this; // TODO test
45284
45288
  }
45285
45289
  const icon = this.hd ? gearHdIcon : gearIcon;
45290
+ this.collapsed = true;
45291
+ this.numItems = 0;
45286
45292
  this.$el
45287
45293
  .html(BottomGear.template({ icon }))
45288
- .find('#gear-sub-menu-wrapper')
45294
+ .hide() // until numItems > 0
45295
+ .find('#gear-options-wrapper')
45289
45296
  .hide();
45290
- // TODO make non-clickable when there are no items
45291
45297
  setTimeout(() => {
45292
45298
  this.trigger(GearEvents.RENDERED);
45293
45299
  }, 0);
@@ -45299,33 +45305,58 @@ class BottomGear extends UICorePlugin {
45299
45305
  * Should be called by the UI plugin that added a gear item with a submenu when the latter is closed (e.g., when a "back" button is clicked).
45300
45306
  */
45301
45307
  refresh() {
45308
+ this.collapseSubmenus();
45309
+ }
45310
+ collapseSubmenus() {
45302
45311
  this.$el.find('.gear-sub-menu-wrapper').hide();
45303
45312
  this.$el.find('#gear-options').show();
45304
45313
  }
45305
- toggleGearMenu() {
45314
+ toggleMenu() {
45306
45315
  this.core
45307
45316
  .getPlugin('media_control')
45308
45317
  .trigger(ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, this.name);
45309
- this.$el.find('#gear-options-wrapper').toggle();
45318
+ this.collapsed = !this.collapsed;
45319
+ if (this.collapsed) {
45320
+ this.$el.find('#gear-options-wrapper').hide();
45321
+ }
45322
+ else {
45323
+ this.$el.find('#gear-options-wrapper').show();
45324
+ }
45325
+ this.$el.find('#gear-button').attr('aria-expanded', (!this.collapsed).toString());
45326
+ trace(`${T$g} toggleMenu`, { hidden: this.collapsed });
45310
45327
  }
45311
- hide() {
45312
- trace(`${T$g} hide`);
45328
+ collapse() {
45329
+ trace(`${T$g} collapse`);
45330
+ this.collapsed = true;
45313
45331
  this.$el.find('#gear-options-wrapper').hide();
45332
+ this.$el.find('#gear-button').attr('aria-expanded', 'false');
45333
+ // TODO hide submenus
45334
+ this.collapseSubmenus();
45314
45335
  }
45315
45336
  onCoreReady() {
45316
45337
  trace(`${T$g} onCoreReady`);
45317
45338
  const mediaControl = this.core.getPlugin('media_control');
45318
45339
  assert(mediaControl, 'media_control plugin is required');
45319
45340
  this.listenTo(mediaControl, Events$1.MEDIACONTROL_RENDERED, this.onMediaControlRendered);
45320
- this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.hide);
45341
+ this.listenTo(mediaControl, Events$1.MEDIACONTROL_HIDE, this.collapse);
45342
+ this.listenTo(mediaControl, Events$1.MEDIACONTROL_CONTAINERCHANGED, () => {
45343
+ this.bindContainerEvents(mediaControl.container);
45344
+ });
45321
45345
  this.listenTo(mediaControl, ExtendedEvents.MEDIACONTROL_MENU_COLLAPSE, (from) => {
45322
45346
  if (from !== this.name) {
45323
- this.hide();
45347
+ this.collapse();
45324
45348
  }
45325
45349
  });
45350
+ this.bindContainerEvents(mediaControl.container);
45326
45351
  }
45327
45352
  onMediaControlRendered() {
45328
45353
  trace(`${T$g} onMediaControlRendered`);
45354
+ this.mount();
45355
+ }
45356
+ mount() {
45357
+ trace(`${T$g} mount`, {
45358
+ numItems: this.numItems,
45359
+ });
45329
45360
  const mediaControl = this.core.getPlugin('media_control');
45330
45361
  mediaControl.mount('gear', this.$el);
45331
45362
  }
@@ -52149,11 +52180,9 @@ class Thumbnails extends UICorePlugin {
52149
52180
  mediaControl.$el.first().after(this.$el);
52150
52181
  }
52151
52182
  onMouseMoveSeekbar(_, pos) {
52152
- if (Math.abs(pos - this.hoverPosition) >= 0.01) {
52153
- this.hoverPosition = pos;
52154
- this.showing = true;
52155
- this.update();
52156
- }
52183
+ this.hoverPosition = pos;
52184
+ this.showing = true;
52185
+ this.update();
52157
52186
  }
52158
52187
  onMouseLeave() {
52159
52188
  this.showing = false;
@@ -52265,7 +52294,6 @@ class Thumbnails extends UICorePlugin {
52265
52294
  // determine which thumbnail applies to the current time
52266
52295
  const thumbIndex = this.getThumbIndexForTime(hoverTime);
52267
52296
  const thumb = this.thumbs[thumbIndex];
52268
- // update thumbnail
52269
52297
  const $spotlight = this.$el.find('#thumbnails-spotlight');
52270
52298
  this.buildThumbImage(thumb, this.spotlightHeight, $spotlight.find('.thumbnail-container')).appendTo($spotlight);
52271
52299
  const elWidth = this.$el.width();
package/dist/player.d.ts CHANGED
@@ -552,6 +552,12 @@ export declare class Clips extends UICorePlugin {
552
552
  destroy(): UIObject;
553
553
  disable(): void;
554
554
  enable(): void;
555
+ /**
556
+ * Get the text of the clip at the given time
557
+ * @param time - The time to get the text for
558
+ * @returns The text of the clip at the given time
559
+ */
560
+ getText(time: TimeValue): string | undefined;
555
561
  private onCoreReady;
556
562
  private onMcRender;
557
563
  private onContainerChanged;
@@ -1158,8 +1164,8 @@ export declare class MediaControl extends UICorePlugin {
1158
1164
  };
1159
1165
  private get disabled();
1160
1166
  /**
1167
+ * Use in mediacontrol-based plugins to access the active container
1161
1168
  * @internal
1162
- * @deprecated Use core.activeContainer directly
1163
1169
  */
1164
1170
  get container(): any;
1165
1171
  /**
@@ -1299,12 +1305,6 @@ export declare class MediaControl extends UICorePlugin {
1299
1305
  * ```
1300
1306
  */
1301
1307
  mount(name: MediaControlElement, element: ZeptoResult): void;
1302
- /**
1303
- * @deprecated Use {@link MediaControl.mount} instead
1304
- * @param name
1305
- * @param element
1306
- */
1307
- putElement(name: MediaControlElement, element: ZeptoResult): void;
1308
1308
  /**
1309
1309
  * Toggle the visibility of a media control element
1310
1310
  * @param name - The name of the media control element
@@ -2216,19 +2216,13 @@ export declare type PlayerPluginConstructor = CorePluginConstructor | ContainerP
2216
2216
  * `PLUGIN` that displays a poster image in the background and a big play button on top when playback is stopped
2217
2217
  * @beta
2218
2218
  * @remarks
2219
- * When the playback is stopped, media control UI is disabled.
2219
+ * When the playback is stopped or not yet started, the media control UI is disabled and hidden.
2220
+ * Media control gets activated once the metadata is loaded after playback is initiated.
2221
+ * This plugin displays a big play button on top of the poster image to allow user to start playback.
2220
2222
  * Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the
2221
2223
  * HTML5-video-based playback module.
2222
2224
  *
2223
- * Configuration options:
2224
- *
2225
- * - `poster.custom` - custom CSS background
2226
- *
2227
- * - `poster.showForNoOp` - whether to show the poster when the playback is not started
2228
- *
2229
- * - `poster.url` - the URL of the poster image
2230
- *
2231
- * - `poster.showOnVideoEnd` - whether to show the poster when the playback is ended
2225
+ * Configuration options - {@link PosterPluginSettings}
2232
2226
  *
2233
2227
  * @example
2234
2228
  * ```ts
@@ -2243,10 +2237,9 @@ export declare type PlayerPluginConstructor = CorePluginConstructor | ContainerP
2243
2237
  */
2244
2238
  export declare class Poster extends UIContainerPlugin {
2245
2239
  private hasFatalError;
2246
- private hasStartedPlaying;
2240
+ private playing;
2247
2241
  private playRequested;
2248
2242
  private $playButton;
2249
- private $playWrapper;
2250
2243
  /**
2251
2244
  * @internal
2252
2245
  */
@@ -2259,12 +2252,12 @@ export declare class Poster extends UIContainerPlugin {
2259
2252
  };
2260
2253
  private static readonly template;
2261
2254
  private get shouldRender();
2255
+ private get isNoOp();
2262
2256
  /**
2263
2257
  * @internal
2264
2258
  */
2265
2259
  get attributes(): {
2266
2260
  class: string;
2267
- 'data-poster': string;
2268
2261
  };
2269
2262
  /**
2270
2263
  * @internal
@@ -2272,7 +2265,6 @@ export declare class Poster extends UIContainerPlugin {
2272
2265
  get events(): {
2273
2266
  click: string;
2274
2267
  };
2275
- private get showOnVideoEnd();
2276
2268
  /**
2277
2269
  * @internal
2278
2270
  */
@@ -2308,6 +2300,25 @@ export declare class Poster extends UIContainerPlugin {
2308
2300
  destroy(): this;
2309
2301
  }
2310
2302
 
2303
+ export declare type PosterPluginSettings = {
2304
+ /**
2305
+ * Custom CSS background
2306
+ */
2307
+ custom?: string;
2308
+ /**
2309
+ * Whether to show the poster image when the playback is noop (i.e., when there is no appropriate video playback engine for current media sources set or the media sources are not set at all)
2310
+ */
2311
+ showForNoOp?: boolean;
2312
+ /**
2313
+ * Poster image URL
2314
+ */
2315
+ url?: string;
2316
+ /**
2317
+ * Whether to show the poster after playback has ended @default true
2318
+ */
2319
+ showOnVideoEnd?: boolean;
2320
+ };
2321
+
2311
2322
  /**
2312
2323
  * A level of quality within a media source/representation.
2313
2324
  * @public
@@ -2897,6 +2908,12 @@ export declare type TelemetrySendFn = (data: TelemetryRecord) => void;
2897
2908
  /**
2898
2909
  * `PLUGIN` that displays the thumbnails of the video when available.
2899
2910
  * @beta
2911
+ * @remarks
2912
+ * The plugin needs specially crafted VTT file with a thumbnail sprite sheet to work.
2913
+ * The VTT consist of timestamp records followed by a thumbnail area
2914
+ *
2915
+ * Configuration options - {@link ThumbnailsPluginSettings}
2916
+ *
2900
2917
  * @example
2901
2918
  * ```ts
2902
2919
  * import { Thumbnails } from '@gcorevideo/player'
@@ -2917,19 +2934,15 @@ export declare type TelemetrySendFn = (data: TelemetryRecord) => void;
2917
2934
  * ```
2918
2935
  */
2919
2936
  export declare class Thumbnails extends UICorePlugin {
2920
- private _$spotlight;
2921
- private _$backdrop;
2922
- private $container;
2923
- private $img;
2924
- private _$carousel;
2925
- private $textThumbnail;
2926
- private _$backdropCarouselImgs;
2937
+ private $backdropCarouselImgs;
2927
2938
  private spriteSheetHeight;
2928
- private _hoverPosition;
2929
- private _show;
2930
- private _thumbsLoaded;
2931
- private _oldContainer;
2932
- private _thumbs;
2939
+ private spriteSheetWidth;
2940
+ private hoverPosition;
2941
+ private showing;
2942
+ private thumbsLoaded;
2943
+ private spotlightHeight;
2944
+ private backdropHeight;
2945
+ private thumbs;
2933
2946
  /**
2934
2947
  * @internal
2935
2948
  */
@@ -2947,29 +2960,30 @@ export declare class Thumbnails extends UICorePlugin {
2947
2960
  class: string;
2948
2961
  };
2949
2962
  private static readonly template;
2963
+ constructor(core: Core);
2950
2964
  private buildSpriteConfig;
2951
2965
  /**
2952
2966
  * @internal
2953
2967
  */
2954
2968
  bindEvents(): void;
2955
- private _bindContainerEvents;
2956
- private _onCoreReady;
2969
+ private bindContainerEvents;
2970
+ private onCoreReady;
2957
2971
  private loadSpriteSheet;
2958
- private _onMediaControlContainerChanged;
2959
- private _init;
2960
- private _getOptions;
2961
- private _appendElToMediaControl;
2962
- private _onMouseMove;
2963
- private _onMouseLeave;
2964
- private _calculateHoverPosition;
2965
- private _buildImg;
2966
- private _loadBackdrop;
2972
+ private onContainerChanged;
2973
+ private init;
2974
+ private mount;
2975
+ private onMouseMoveSeekbar;
2976
+ private onMouseLeave;
2977
+ private buildThumbImage;
2978
+ private loadBackdrop;
2967
2979
  private setText;
2968
- private _updateCarousel;
2969
- private _updateSpotlightThumb;
2970
- private _getThumbIndexForTime;
2971
- private _renderPlugin;
2972
- private _createElements;
2980
+ private updateCarousel;
2981
+ private updateSpotlightThumb;
2982
+ private getThumbIndexForTime;
2983
+ private update;
2984
+ private fixElements;
2985
+ private get shouldRender();
2986
+ render(): this;
2973
2987
  }
2974
2988
 
2975
2989
  /**
@@ -2977,10 +2991,10 @@ export declare class Thumbnails extends UICorePlugin {
2977
2991
  * @beta
2978
2992
  */
2979
2993
  export declare type ThumbnailsPluginSettings = {
2980
- backdropHeight: number;
2981
- backdropMaxOpacity: number;
2982
- backdropMinOpacity: number;
2983
- spotlightHeight: number;
2994
+ backdropHeight?: number;
2995
+ backdropMaxOpacity?: number;
2996
+ backdropMinOpacity?: number;
2997
+ spotlightHeight?: number;
2984
2998
  sprite: string;
2985
2999
  vtt: string;
2986
3000
  };
@@ -1,21 +1,18 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [MediaControl](./player.mediacontrol.md) &gt; [putElement](./player.mediacontrol.putelement.md)
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Clips](./player.clips.md) &gt; [getText](./player.clips.gettext.md)
4
4
 
5
- ## MediaControl.putElement() method
5
+ ## Clips.getText() method
6
6
 
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- > Warning: This API is now obsolete.
11
- >
12
- > Use [MediaControl.mount()](./player.mediacontrol.mount.md) instead
13
- >
10
+ Get the text of the clip at the given time
14
11
 
15
12
  **Signature:**
16
13
 
17
14
  ```typescript
18
- putElement(name: MediaControlElement, element: ZeptoResult): void;
15
+ getText(time: TimeValue): string | undefined;
19
16
  ```
20
17
 
21
18
  ## Parameters
@@ -38,34 +35,24 @@ Description
38
35
  </th></tr></thead>
39
36
  <tbody><tr><td>
40
37
 
41
- name
38
+ time
42
39
 
43
40
 
44
41
  </td><td>
45
42
 
46
- [MediaControlElement](./player.mediacontrolelement.md)
43
+ [TimeValue](./player.timevalue.md)
47
44
 
48
45
 
49
46
  </td><td>
50
47
 
51
-
52
- </td></tr>
53
- <tr><td>
54
-
55
- element
56
-
57
-
58
- </td><td>
59
-
60
- [ZeptoResult](./player.zeptoresult.md)
61
-
62
-
63
- </td><td>
48
+ The time to get the text for
64
49
 
65
50
 
66
51
  </td></tr>
67
52
  </tbody></table>
68
53
  **Returns:**
69
54
 
70
- void
55
+ string \| undefined
56
+
57
+ The text of the clip at the given time
71
58
 
@@ -152,6 +152,20 @@ Description
152
152
  **_(BETA)_**
153
153
 
154
154
 
155
+ </td></tr>
156
+ <tr><td>
157
+
158
+ [getText(time)](./player.clips.gettext.md)
159
+
160
+
161
+ </td><td>
162
+
163
+
164
+ </td><td>
165
+
166
+ **_(BETA)_** Get the text of the clip at the given time
167
+
168
+
155
169
  </td></tr>
156
170
  <tr><td>
157
171
 
@@ -1016,6 +1016,15 @@ A media source to fetch the media data from
1016
1016
 
1017
1017
 
1018
1018
 
1019
+ </td></tr>
1020
+ <tr><td>
1021
+
1022
+ [PosterPluginSettings](./player.posterpluginsettings.md)
1023
+
1024
+
1025
+ </td><td>
1026
+
1027
+
1019
1028
  </td></tr>
1020
1029
  <tr><td>
1021
1030
 
@@ -237,20 +237,6 @@ Description
237
237
  **_(BETA)_** Get a media control element DOM node
238
238
 
239
239
 
240
- </td></tr>
241
- <tr><td>
242
-
243
- [putElement(name, element)](./player.mediacontrol.putelement.md)
244
-
245
-
246
- </td><td>
247
-
248
-
249
- </td><td>
250
-
251
- **_(BETA)_**
252
-
253
-
254
240
  </td></tr>
255
241
  <tr><td>
256
242
 
@@ -18,17 +18,9 @@ export declare class Poster extends UIContainerPlugin
18
18
 
19
19
  ## Remarks
20
20
 
21
- When the playback is stopped, media control UI is disabled. Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the HTML5-video-based playback module.
21
+ When the playback is stopped or not yet started, the media control UI is disabled and hidden. Media control gets activated once the metadata is loaded after playback is initiated. This plugin displays a big play button on top of the poster image to allow user to start playback. Note that the poster image, if specified via the player config, will be used to update video element's poster attribute by the HTML5-video-based playback module.
22
22
 
23
- Configuration options:
24
-
25
- - `poster.custom` - custom CSS background
26
-
27
- - `poster.showForNoOp` - whether to show the poster when the playback is not started
28
-
29
- - `poster.url` - the URL of the poster image
30
-
31
- - `poster.showOnVideoEnd` - whether to show the poster when the playback is ended
23
+ Configuration options - [PosterPluginSettings](./player.posterpluginsettings.md)
32
24
 
33
25
  ## Example
34
26
 
@@ -0,0 +1,16 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PosterPluginSettings](./player.posterpluginsettings.md)
4
+
5
+ ## PosterPluginSettings type
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ export type PosterPluginSettings = {
11
+ custom?: string;
12
+ showForNoOp?: boolean;
13
+ url?: string;
14
+ showOnVideoEnd?: boolean;
15
+ };
16
+ ```
@@ -0,0 +1,50 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Thumbnails](./player.thumbnails.md) &gt; [(constructor)](./player.thumbnails._constructor_.md)
4
+
5
+ ## Thumbnails.(constructor)
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ Constructs a new instance of the `Thumbnails` class
11
+
12
+ **Signature:**
13
+
14
+ ```typescript
15
+ constructor(core: Core);
16
+ ```
17
+
18
+ ## Parameters
19
+
20
+ <table><thead><tr><th>
21
+
22
+ Parameter
23
+
24
+
25
+ </th><th>
26
+
27
+ Type
28
+
29
+
30
+ </th><th>
31
+
32
+ Description
33
+
34
+
35
+ </th></tr></thead>
36
+ <tbody><tr><td>
37
+
38
+ core
39
+
40
+
41
+ </td><td>
42
+
43
+ Core
44
+
45
+
46
+ </td><td>
47
+
48
+
49
+ </td></tr>
50
+ </tbody></table>