Creates a new THEOplayer default UI.
The player configuration. Will be passed to the ChromelessPlayer constructor to create the underlying THEOplayer instance. Can also be set later on through the DefaultUI.configuration property.
Protected Readonly_StaticREADY_Fired when the backing player is created, and the DefaultUI.player property is set.
Whether the player should attempt to automatically start playback.
The player configuration.
Used to create the underlying THEOplayer instance.
The device type, either "desktop", "mobile" or "tv".
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".
Whether to automatically adjust the player's height to fit the video's aspect ratio.
Whether the player's audio is muted.
The underlying THEOplayer player instance.
This is constructed automatically as soon as a valid configuration is set.
The player's current source.
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.
Whether the user has stopped interacting with the UI and is considered to be "idle".
The timeout (in seconds) between when the user stops interacting with the UI, and when the user is considered to be "idle".
Protected_ProtectedrenderInvoked 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().
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.
StaticshadowOptions 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.
ProtectedrenderInvoked 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.
StaticstylesArray 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>
ProtectedfirstInvoked 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.
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.
Usage
<theoplayer-default-ui>element.configurationattribute or property to a valid player configuration.sourceattribute or property to a valid stream source.Customization
The styling can be controlled using CSS custom properties (see
<theoplayer-ui>). Additional controls can be added to thetop-control-barandbottom-control-barslots. For more extensive customizations, we recommend defining your own custom UI using a<theoplayer-ui>.Custom Element
<theoplayer-default-ui>Attributes
configurationThe THEOplayer UIPlayerConfiguration, as a JSON string.
sourceThe THEOplayer SourceDescription, as a JSON string.
fluidIf set, the player automatically adjusts its height to fit the video's aspect ratio.
mutedIf set, the player starts out as muted. Reflects
ui.player.muted.autoplayIf set, the player attempts to automatically start playing (if allowed).
device-typeThe device type, either "desktop", "mobile" or "tv". Can be used in CSS to show/hide certain device-specific UI controls.
mobileWhether the user is on a mobile device. Equivalent to
device-type == "mobile".tvWhether the user is on a TV device. Equivalent to
device-type == "tv".stream-typeThe 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-timeoutThe timeout (in seconds) between when the user stops interacting with the UI, and when the user is considered to be "idle".
dvr-thresholdThe 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".
Slots
titleA slot for the stream's title in the top control bar.
top-control-barA slot for extra UI controls in the top control bar.
centered-chromeA slot to replace the controls in the center of the player, layered on top of other controls.
bottom-control-barA slot for extra UI controls in the bottom control bar.
menuA slot for extra menus (see
<theoplayer-menu>).errorA slot for an error display, to show when the player encounters a fatal error. By default, this shows an
<theoplayer-error-display>.CSS Custom Properties
--theoplayer-text-colorThe text color of a control. Defaults to
#fff.--theoplayer-text-font-sizeThe font size of any text inside a control. Defaults to
14px.--theoplayer-control-heightThe height of a control. Defaults to
24px.--theoplayer-control-paddingThe padding around a control. Defaults to
10px.--theoplayer-control-background-gradient-stopsThe 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-backgroundThe 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-widthThe icon width of buttons in the centered chrome slot. Defaults to
48px.--theoplayer-centered-chrome-control-heightThe control height of elements in the centered chrome slot. Defaults to
48px.--theoplayer-center-play-button-icon-colorThe icon color of the centered play button. Overrides
--theoplayer-play-button-icon-colorfor this button. Defaults tounset.--theoplayer-time-range-control-heightThe control height of the time range (seek bar). Defaults to
12px.--theoplayer-time-range-track-pointer-backgroundThe background of the hover/preview pointer on the time range. Defaults to
rgba(255, 255, 255, 0.5).--theoplayer-volume-range-track-widthThe width of the volume range track when expanded on hover. Defaults to
70px.--theoplayer-ad-chrome-control-heightThe control height for elements inside the ad chrome. Defaults to
12px.--theoplayer-ad-control-heightThe control height of playback controls while an ad is playing. Defaults to
16px.