<theoplayer-ui> - The container element for a THEOplayer UI.

This element provides a basic layout structure for a general player UI, and handles the creation and management of a THEOplayer player instance for this UI.

  1. Create a <theoplayer-ui> element.
  2. Place your UI elements as children of the <theoplayer-ui>. Set their slot attribute to one of the defined slots (see below) to place them in the layout.
  3. Set its configuration attribute or property to a valid player configuration.
  4. Set its source attribute or property to a valid stream source.

This element does not provide any UI elements by default, you need to add all elements as children of the <theoplayer-ui> element. If you're looking for a simple out-of-the-box player experience instead, see <theoplayer-default-ui>.

The styling can be controlled using CSS custom properties (see below).

configuration - The THEOplayer PlayerConfiguration, 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 (readonly) - Whether the user is considered to be "idle". When the user is idle and the video is playing, all slotted UI elements will be hidden (unless they have the no-auto-hide attribute).

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".

paused (readonly) - Whether the player is paused. Reflects ui.player.paused.

ended (readonly) - Whether the player is ended. Reflects ui.player.ended.

casting (readonly) - Whether the player is casting. Reflects ui.player.cast.casting.

playing-ad (readonly) - Whether the player is playing a linear ad. Reflects ui.player.ads.playing.

has-error (readonly) - Whether the player has encountered a fatal error.

has-first-play (readonly) - Whether the player has (previously) started playback for this stream. Can be used in CSS to show/hide certain initial controls, such as a poster image or a centered play button.

(no name, default slot) - A slot for controls at the bottom of the player. Can be used for controls such as a play button (<theoplayer-play-button>) or a seek bar (<theoplayer-time-range>).

top-chrome - A slot for controls at the top of the player. Can be used to display the stream's title, or for a cast button (<theoplayer-chromecast-button>).

middle-chrome - A slot for controls in the middle of the player (between the top and bottom chrome).

centered-chrome - A slot for controls centered on the player, on top of other controls.

centered-loading - A slot for a loading indicator centered on the player, on top of other controls but behind the centered chrome.

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 (see <theoplayer-error-display>).

Hierarchy

Constructors

Accessors

  • get autoplay(): boolean

    Whether the player should attempt to automatically start playback.

    Returns boolean

  • set autoplay(value: boolean): void

    Parameters

    • value: boolean

    Returns void

  • get casting(): boolean

    Whether the player is casting to a remote receiver.

    Returns boolean

  • 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

  • get ended(): boolean

    Whether the player is ended.

    Returns boolean

  • get fluid(): boolean

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

    Returns boolean

  • set fluid(value: boolean): void

    Parameters

    • value: boolean

    Returns void

  • get fullscreen(): boolean

    Whether the UI is in fullscreen mode.

    Returns boolean

  • get muted(): boolean

    Whether the player's audio is muted.

    Returns boolean

  • set muted(value: boolean): void

    Parameters

    • value: boolean

    Returns void

  • get paused(): boolean

    Whether the player is paused.

    Returns boolean

  • get 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.

    Returns StreamType

  • set streamType(streamType: StreamType): void

    Parameters

    Returns void

  • 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): void

    Parameters

    • value: number

    Returns void

Methods

  • Parameters

    • attrName: string
    • oldValue: any
    • newValue: any

    Returns void

Events

READY_EVENT: "theoplayerready" = READY_EVENT

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