@theoplayer/web-ui
    Preparing search index...

    Class DefaultUI

    A default UI for THEOplayer.

    This default UI provides a great player experience out-of-the-box, that works well on all types of devices and for all types of streams. It provides all the common playback controls for playing, seeking, changing languages and qualities. It also supports advertisements and casting.

    1. Create a <theoplayer-default-ui> element.
    2. Set its configuration attribute or property to a valid player configuration.
    3. Set its source attribute or property to a valid stream source.
    4. Optionally, customize the player using CSS custom properties and/or extra controls.

    The styling can be controlled using CSS custom properties (see <theoplayer-ui>). Additional controls can be added to the top-control-bar and bottom-control-bar slots. For more extensive customizations, we recommend defining your own custom UI using a <theoplayer-ui>.

    <theoplayer-default-ui>

    AttributeDescription

    configuration

    The THEOplayer UIPlayerConfiguration, as a JSON string.

    source

    The THEOplayer SourceDescription, as a JSON string.

    fluid

    If set, the player automatically adjusts its height to fit the video's aspect ratio.

    muted

    If set, the player starts out as muted. Reflects ui.player.muted.

    autoplay

    If set, the player attempts to automatically start playing (if allowed).

    device-type

    The device type, either "desktop", "mobile" or "tv". Can be used in CSS to show/hide certain device-specific UI controls.

    mobile

    Whether the user is on a mobile device. Equivalent to device-type == "mobile".

    tv

    Whether the user is on a TV device. Equivalent to device-type == "tv".

    stream-type

    The stream type, either "vod", "live" or "dvr". Can be used to show/hide certain UI controls specific for livestreams, such as a <theoplayer-live-button>. If you know in advance that the source will be a livestream, you can set this attribute to avoid a screen flicker when the player switches between its VOD-specific and live-only controls.

    user-idle-timeout

    The timeout (in seconds) between when the user stops interacting with the UI, and when the user is considered to be "idle".

    dvr-threshold

    The minimum length (in seconds) of a livestream's sliding window for the stream to be DVR and its stream type to be set to "dvr".

    SlotDescription

    title

    A slot for the stream's title in the top control bar.

    top-control-bar

    A slot for extra UI controls in the top control bar.

    centered-chrome

    A slot to replace the controls in the center of the player, layered on top of other controls.

    bottom-control-bar

    A slot for extra UI controls in the bottom control bar.

    menu

    A slot for extra menus (see <theoplayer-menu>).

    error

    A slot for an error display, to show when the player encounters a fatal error. By default, this shows an <theoplayer-error-display>.

    PropertyDescription

    --theoplayer-text-color

    The text color of a control. Defaults to #fff.

    --theoplayer-text-font-size

    The font size of any text inside a control. Defaults to 14px.

    --theoplayer-control-height

    The height of a control. Defaults to 24px.

    --theoplayer-control-padding

    The padding around a control. Defaults to 10px.

    --theoplayer-control-background-gradient-stops

    The gradient stops used for the subtle backdrop gradient behind the top and bottom control bars on desktop. Defaults to a smooth transparent-to-black gradient.

    --theoplayer-mobile-control-backdrop-background

    The background applied to the entire player on mobile when the controls are shown. Defaults to rgba(0, 0, 0, 0.5).

    --theoplayer-centered-chrome-button-icon-width

    The icon width of buttons in the centered chrome slot. Defaults to 48px.

    --theoplayer-centered-chrome-control-height

    The control height of elements in the centered chrome slot. Defaults to 48px.

    --theoplayer-center-play-button-icon-color

    The icon color of the centered play button. Overrides --theoplayer-play-button-icon-color for this button. Defaults to unset.

    --theoplayer-time-range-control-height

    The control height of the time range (seek bar). Defaults to 12px.

    --theoplayer-time-range-track-pointer-background

    The background of the hover/preview pointer on the time range. Defaults to rgba(255, 255, 255, 0.5).

    --theoplayer-volume-range-track-width

    The width of the volume range track when expanded on hover. Defaults to 70px.

    --theoplayer-ad-chrome-control-height

    The control height for elements inside the ad chrome. Defaults to 12px.

    --theoplayer-ad-control-height

    The control height of playback controls while an ad is playing. Defaults to 16px.

    Hierarchy (View Summary)

    Index

    Other

    _uiRef: Ref<UIContainer> = ...
    READY_EVENT: "theoplayerready" = READY_EVENT

    Fired when the backing player is created, and the DefaultUI.player property is set.

    autoplay: boolean

    Whether the player should attempt to automatically start playback.

    • get dvrThreshold(): number

      The minimum length (in seconds) of a livestream's sliding window for the stream to be DVR and its stream type to be set to "dvr".

      Returns number

    • set dvrThreshold(value: number): void

      Parameters

      • value: number

      Returns void

    fluid: boolean

    Whether to automatically adjust the player's height to fit the video's aspect ratio.

    Attribute.FLUID

    muted: boolean

    Whether the player's audio is muted.

    Attribute.MUTED

    streamType: StreamType

    The stream type, either "vod", "live" or "dvr".

    If you know in advance that the source will be a livestream, you can set this property to avoid a screen flicker when the player switches between its VOD-specific and live-only controls.

    • get userIdle(): boolean

      Whether the user has stopped interacting with the UI and is considered to be "idle".

      Returns boolean

    • get userIdleTimeout(): number

      The timeout (in seconds) between when the user stops interacting with the UI, and when the user is considered to be "idle".

      Returns number

    • set userIdleTimeout(value: number | undefined): void

      Parameters

      • value: number | undefined

      Returns void

    lifecycle

    • Invoked when the component is added to the document's DOM.

      In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

      connectedCallback() {
      super.connectedCallback();
      addEventListener('keydown', this._handleKeydown);
      }

      Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

      Returns void

    • Invoked when the component is removed from the document's DOM.

      This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

      disconnectedCallback() {
      super.disconnectedCallback();
      window.removeEventListener('keydown', this._handleKeydown);
      }

      An element may be re-connected after being disconnected.

      Returns void

    rendering

    shadowRootOptions: ShadowRootInit = ...

    Options used when calling attachShadow. Set this property to customize the options for the shadowRoot; for example, to create a closed shadowRoot: {mode: 'closed'}.

    Note, these options are used in createRenderRoot. If this method is customized, options should be respected if possible.

    • Invoked on each update to perform rendering tasks. This method may return any value renderable by lit-html's ChildPart - typically a TemplateResult. Setting properties inside this method will not trigger the element to update.

      Returns HTMLTemplateResult

    styles

    styles: CSSResult[] = ...

    Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

    Note on Content Security Policy:

    Element styles are implemented with <style> tags when the browser doesn't support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include 'unsafe-inline' or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

    To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page's HTML, before loading application code:

    <script>
    // Generated and unique per request:
    window.litNonce = 'a1b2c3d4';
    </script>

    updates

    • Invoked when the element is first updated. Implement to perform one time work on the element after update.

      firstUpdated() {
      this.renderRoot.getElementById('my-text-area').focus();
      }

      Setting properties inside this method will trigger the element to update again after this update cycle completes.

      Returns void