Constructor
new Player(tag, optionsopt, readyopt)
Create an instance of this class.
Name | Type | Attributes | Description |
---|---|---|---|
tag | Element | The original video DOM element used for configuring options. | |
options | Object | <optional> | Object of option names and values. |
ready | PlayerReadyCallback | <optional> | Ready callback function. |
Extends
Members
controls_ :boolean
- boolean
crossorigin
Get or set the Player
's crossorigin option. For the HTML5 player, this sets the crossOrigin
property on the <video>
tag to control the CORS behavior.
poster_ :string
- string
(static) players :Object
Global enumeration of players.
The keys are the player IDs and the values are either the Player instance or null
for disposed players.
- Object
Methods
$(selector, contextopt) → {Element|null}
Find a single DOM element matching a selector
. This can be within the Component
s contentEl()
or another custom context.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
selector | string | A valid CSS selector, which will be passed to | ||
context | Element | | <optional> | this.contentEl() | A DOM element within which to query. Can also be a selector string in which case the first matching element will get used as context. If missing |
- Overrides
- Source
the dom element that was found, or null
- Type:
- Element |
null
$$(selector, contextopt) → {NodeList}
Finds all DOM element matching a selector
. This can be within the Component
s contentEl()
or another custom context.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
selector | string | A valid CSS selector, which will be passed to | ||
context | Element | | <optional> | this.contentEl() | A DOM element within which to query. Can also be a selector string in which case the first matching element will get used as context. If missing |
- Overrides
- Source
a list of dom elements that were found
- Type:
- NodeList
addChild(child, optionsopt, indexopt) → {Component}
Add a child Component
inside the current Component
.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
child | string | | The name or instance of a child to add. | ||
options | Object | <optional> | {} | The key/value store of options that will get passed to children of the child. |
index | number | <optional> | this.children_.length | The index to attempt to add a child into. |
- Overrides
- Source
The Component
that gets added as a child. When using a string the Component
will get created by this process.
- Type:
- Component
addClass(…classesToAdd)
Add a CSS class name to the Component
s element.
Name | Type | Attributes | Description |
---|---|---|---|
classesToAdd | string | <repeatable> | One or more CSS class name to add. |
- Overrides
- Source
addRemoteTextTrack(options, manualCleanupopt) → {HtmlTrackElement}
Create a remote TextTrack and an HTMLTrackElement.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
options | Object | Options to pass to HTMLTrackElement during creation. See HTMLTrackElement for object properties that you should use. | ||
manualCleanup | boolean | <optional> | false | if set to true, the TextTrack will not be removed from the TextTrackList and HtmlTrackElementList after a source change |
the HTMLTrackElement that was created and added to the HtmlTrackElementList and the remote TextTrackList
- Type:
- HtmlTrackElement
addSourceElement(srcUrl, mimeTypeopt) → {boolean}
Add a
Name | Type | Attributes | Description |
---|---|---|---|
srcUrl | string | The URL of the video source. | |
mimeType | string | <optional> | The MIME type of the video source. Optional but recommended. |
Returns true if the source element was successfully added, false otherwise.
- Type:
- boolean
addTextTrack(kindopt, labelopt, languageopt) → {TextTrack|undefined}
A helper method for adding a TextTrack to our TextTrackList.
In addition to the W3C settings we allow adding additional info through options.
Name | Type | Attributes | Description |
---|---|---|---|
kind | string | <optional> | the kind of TextTrack you are adding |
label | string | <optional> | the label to give the TextTrack label |
language | string | <optional> | the language to set on the TextTrack |
the TextTrack that was added or undefined if there is no tech
- Type:
- TextTrack |
undefined
aspectRatio(ratioopt) → {string|undefined}
A getter/setter for the Player
's aspect ratio.
Name | Type | Attributes | Description |
---|---|---|---|
ratio | string | <optional> | The value to set the |
- The current aspect ratio of the
Player
when getting. - undefined when setting
- Type:
- string |
undefined
audioOnlyMode(valueopt) → {Promise|boolean}
Get the current audioOnlyMode state or set audioOnlyMode to true or false.
Setting this to true
will hide all player components except the control bar, as well as control bar components needed only for video.
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | <optional> | The value to set audioOnlyMode to. |
A Promise is returned when setting the state, and a boolean when getting the present state
- Type:
- Promise |
boolean
audioPosterMode(valueopt) → {Promise|boolean}
Get the current audioPosterMode state or set audioPosterMode to true or false
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | <optional> | The value to set audioPosterMode to. |
A Promise is returned when setting the state, and a boolean when getting the present state
- Type:
- Promise |
boolean
audioTracks() → {AudioTrackList}
Get the AudioTrackList
the current audio track list
- Type:
- AudioTrackList
autoplay(valueopt) → {boolean|string|undefined}
Get or set the autoplay option. When this is a boolean it will modify the attribute on the tech. When this is a string the attribute on the tech will be removed and Player
will handle autoplay on loadstarts.
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | | <optional> |
|
- The current value of autoplay when getting - Nothing when setting
- Type:
- boolean |
string | undefined
blur()
Remove the focus from this component
- Overrides
- Source
breakpoints(breakpointsopt) → {Object}
Get or set breakpoints on the player.
Calling this method with an object or true
will remove any previous custom breakpoints and start from the defaults again.
Name | Type | Attributes | Description | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
breakpoints | Object | | <optional> | If an object is given, it can be used to provide custom breakpoints. If Properties
|
An object mapping breakpoint names to maximum width values.
- Type:
- Object
buffered() → {TimeRange}
Get a TimeRange object with an array of the times of the video that have been downloaded. If you just want the percent of the video that's been downloaded, use bufferedPercent.
A mock TimeRanges object (following HTML spec)
- Type:
- TimeRange
bufferedEnd() → {number}
Get the ending time of the last buffered time range This is used in the progress bar to encapsulate all time ranges.
The end of the last buffered time range
- Type:
- number
bufferedPercent() → {number}
Get the percent (as a decimal) of the video that's been downloaded. This method is not a part of the native HTML video API.
A decimal between 0 and 1 representing the percent that is buffered 0 being 0% and 1 being 100%
- Type:
- number
(abstract) buildCSSClass() → {string}
Builds the default DOM class name. Should be overridden by sub-components.
- Overrides
- Source
The DOM class name for this object.
- Type:
- string
canPlayType(type) → {string}
Check whether the player can play a given mimetype
Name | Type | Description |
---|---|---|
type | string | The mimetype to check |
'probably', 'maybe', or '' (empty string)
- Type:
- string
cancelAnimationFrame(id) → {number}
Cancels a queued callback passed to Component#requestAnimationFrame (rAF).
If you queue an rAF callback via Component#requestAnimationFrame, use this function instead of window.cancelAnimationFrame
. If you don't, your dispose listener will not get cleaned up until Component#dispose!
Name | Type | Description |
---|---|---|
id | number | The rAF ID to clear. The return value of Component#requestAnimationFrame. |
- Overrides
- Source
- See
Returns the rAF ID that was cleared.
- Type:
- number
cancelNamedAnimationFrame(name)
Cancels a current named animation frame if it exists.
Name | Type | Description |
---|---|---|
name | string | The name of the requestAnimationFrame to cancel. |
- Overrides
- Source
children() → {Array}
Get an array of all child components
- Overrides
- Source
The children
- Type:
- Array
clearInterval(intervalId) → {number}
Clears an interval that gets created via window.setInterval
or Component#setInterval. If you set an interval via Component#setInterval use this function instead of window.clearInterval
. If you don't your dispose listener will not get cleaned up until Component#dispose!
Name | Type | Description |
---|---|---|
intervalId | number | The id of the interval to clear. The return value of Component#setInterval or |
- Overrides
- Source
- See
Returns the interval id that was cleared.
- Type:
- number
clearTimeout(timeoutId) → {number}
Clears a timeout that gets created via window.setTimeout
or Component#setTimeout. If you set a timeout via Component#setTimeout use this function instead of window.clearTimout
. If you don't your dispose listener will not get cleaned up until Component#dispose!
Name | Type | Description |
---|---|---|
timeoutId | number | The id of the timeout to clear. The return value of Component#setTimeout or |
- Overrides
- Source
- See
Returns the timeout id that was cleared.
- Type:
- number
contentEl() → {Element}
Return the Component
s DOM element. This is where children get inserted. This will usually be the the same as the element returned in Component#el.
- Overrides
- Source
The content element for this Component
.
- Type:
- Element
controls(boolopt) → {boolean|undefined}
Get or set whether or not the controls are showing.
Name | Type | Attributes | Description |
---|---|---|---|
bool | boolean | <optional> |
|
- The current value of controls when getting - Nothing when setting
- Type:
- boolean |
undefined
createEl() → {Element}
Create the Player
's DOM element.
- Overrides
The DOM element that gets created.
- Type:
- Element
createModal(content, optionsopt) → {ModalDialog}
Creates a simple modal dialog (an instance of the ModalDialog component) that immediately overlays the player with arbitrary content and removes itself when closed.
Name | Type | Attributes | Description |
---|---|---|---|
content | string | | Same as ModalDialog#content's param of the same name. The most straight-forward usage is to provide a string or DOM element. | |
options | Object | <optional> | Extra options which will be passed on to the ModalDialog. |
the ModalDialog that was created
- Type:
- ModalDialog
crossOrigin(valueopt) → {string|null|undefined}
Get or set the Player
's crossOrigin option. For the HTML5 player, this sets the crossOrigin
property on the <video>
tag to control the CORS behavior.
Name | Type | Attributes | Description |
---|---|---|---|
value | string | | <optional> | The value to set the |
- The current crossOrigin value of the
Player
when getting. - undefined when setting
- Type:
- string |
null | undefined
currentBreakpoint() → {string}
Get current breakpoint name, if any.
If there is currently a breakpoint set, returns a the key from the breakpoints object matching it. Otherwise, returns an empty string.
- Type:
- string
currentBreakpointClass() → {string}
Get the current breakpoint class name.
The matching class name (e.g. "vjs-layout-tiny"
or "vjs-layout-large"
) for the current breakpoint. Empty string if there is no current breakpoint.
- Type:
- string
currentDimension(widthOrHeight) → {number}
Get the computed width or the height of the component's element.
Uses window.getComputedStyle
.
Name | Type | Description |
---|---|---|
widthOrHeight | string | A string containing 'width' or 'height'. Whichever one you want to get. |
- Overrides
- Source
The dimension that gets asked for or 0 if nothing was set for that dimension.
- Type:
- number
currentDimensions() → {Component~DimensionObject}
Get an object that contains computed width and height values of the component's element.
Uses window.getComputedStyle
.
- Overrides
- Source
The computed dimensions of the component's element.
currentHeight() → {number}
Get the computed height of the component's element.
Uses window.getComputedStyle
.
- Overrides
- Source
The computed height of the component's element.
- Type:
- number
currentSource() → {Tech~SourceObject}
Returns the current source object.
The current source object
- Type:
- Tech~SourceObject
currentSources() → {Array.<Tech~SourceObject>}
Returns all of the current source objects.
The current source objects
- Type:
- Array.<Tech~SourceObject>
currentSrc() → {string}
Returns the fully qualified URL of the current source value e.g. http://mysite.com/video.mp4 Can be used in conjunction with currentType
to assist in rebuilding the current source object.
The current source
- Type:
- string
currentTime(secondsopt) → {number|undefined}
Get or set the current time (in seconds)
Name | Type | Attributes | Description |
---|---|---|---|
seconds | number | | <optional> | The time to seek to in seconds |
- the current time in seconds when getting - Nothing when setting
- Type:
- number |
undefined
currentType() → {string}
Get the current source type e.g. video/mp4 This can allow you rebuild the current source object so that you could load the same source and tech later
The source MIME type
- Type:
- string
currentWidth() → {number}
Get the computed width of the component's element.
Uses window.getComputedStyle
.
- Overrides
- Source
The computed width of the component's element.
- Type:
- number
debug(enabled) → {boolean|undefined}
Set debug mode to enable/disable logs at info level.
Name | Type | Description |
---|---|---|
enabled | boolean |
- Player#event:debugon
- Player#event:debugoff
- Type:
- boolean |
undefined
defaultMuted(defaultMutedopt) → {boolean|undefined}
Get the current defaultMuted state, or turn defaultMuted on or off. defaultMuted indicates the state of muted on initial playback.
var myPlayer = videojs('some-player-id');
myPlayer.src("http://www.example.com/path/to/video.mp4");
// get, should be false
console.log(myPlayer.defaultMuted());
// set to true
myPlayer.defaultMuted(true);
// get should be true
console.log(myPlayer.defaultMuted());
Name | Type | Attributes | Description |
---|---|---|---|
defaultMuted | boolean | <optional> |
|
- true if defaultMuted is on and getting - false if defaultMuted is off and getting - Nothing when setting
- Type:
- boolean |
undefined
defaultPlaybackRate(rateopt) → {number|undefined}
Gets or sets the current default playback rate. A default playback rate of 1.0 represents normal speed and 0.5 would indicate half-speed playback, for instance. defaultPlaybackRate will only represent what the initial playbackRate of a video was, not not the current playbackRate.
Name | Type | Attributes | Description |
---|---|---|---|
rate | number | <optional> | New default playback rate to set. |
- The default playback rate when getting or 1.0 - Nothing when setting
- Type:
- number |
undefined
dimension(dimension, valueopt) → {number}
A getter/setter for the Player
's width & height.
Name | Type | Attributes | Description |
---|---|---|---|
dimension | string | This string can be: - 'width' - 'height' | |
value | number | | <optional> | Value for dimension specified in the first argument. |
- Overrides
The dimension arguments value when getting (width/height).
- Type:
- number
dimensions(width, height)
Set both the width and height of the Component
element at the same time.
Name | Type | Description |
---|---|---|
width | number | | Width to set the |
height | number | | Height to set the |
- Overrides
- Source
disablePictureInPicture(valueopt)
Get or set disable Picture-in-Picture mode.
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | <optional> |
|
dispose()
Destroys the video player and does any necessary cleanup.
This is especially helpful if you are dynamically adding and removing videos to/from the DOM.
- Overrides
documentFullscreenChange_()
when the document fschange event triggers it calls this
duration(secondsopt) → {number|undefined}
Normally gets the length in time of the video in seconds; in all but the rarest use cases an argument will NOT be passed to the method
NOTE: The video must have started loading before the duration can be known, and depending on preload behaviour may not be known until the video starts playing.
Name | Type | Attributes | Description |
---|---|---|---|
seconds | number | <optional> | The duration of the video to set in seconds |
- The duration of the video in seconds when getting - Nothing when setting
- Type:
- number |
undefined
el() → {Element}
Get the Component
s DOM element
- Overrides
- Source
The DOM element for this Component
.
- Type:
- Element
(protected) emitTapEvents()
Emit a 'tap' events when touch event support gets detected. This gets used to support toggling the controls through a tap on the video. They get enabled because every sub-component would have extra overhead otherwise.
- Overrides
- Source
- Component#event:touchstart
- Component#event:touchmove
- Component#event:touchleave
- Component#event:touchcancel
- Component#event:touchend
enableTouchActivity()
This function reports user activity whenever touch events happen. This can get turned off by any sub-components that wants touch events to act another way.
Report user touch activity when touch events occur. User activity gets used to determine when controls should show/hide. It is simple when it comes to mouse events, because any mouse event should show the controls. So we capture mouse events that bubble up to the player and report activity when that happens. With touch events it isn't as easy as touchstart
and touchend
toggle player controls. So touch events can't help us at the player level either.
User activity gets checked asynchronously. So what could happen is a tap event on the video turns the controls off. Then the touchend
event bubbles up to the player. Which, if it reported user activity, would turn the controls right back on. We also don't want to completely block touch events from bubbling up. Furthermore a touchmove
event and anything other than a tap, should not turn controls back on.
- Overrides
- Source
- Component#event:touchstart
- Component#event:touchmove
- Component#event:touchend
- Component#event:touchcancel
ended() → {boolean}
Returns whether the player is in the "ended" state.
True if the player is in the ended state, false if not.
- Type:
- boolean
enterFullWindow()
When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.
error(erropt) → {MediaError|null|undefined}
Set or get the current MediaError
Name | Type | Attributes | Description |
---|---|---|---|
err | MediaError | | <optional> | A MediaError or a string/number to be turned into a MediaError |
- The current MediaError when getting (or null) - Nothing when setting
- Type:
- MediaError |
null | undefined
exitFullWindow()
Exit full window
exitFullscreen()
Return the video to its normal size after having been in full screen mode
exitPictureInPicture() → {Promise}
Exit Picture-in-Picture mode.
- See
A promise.
- Type:
- Promise
fill(boolopt) → {boolean|undefined}
A getter/setter/toggler for the vjs-fill className
on the Player
.
Turning this on will turn off fluid mode.
Name | Type | Attributes | Description |
---|---|---|---|
bool | boolean | <optional> |
|
- The value of fluid when getting. -
undefined
when setting.
- Type:
- boolean |
undefined
fluid(boolopt) → {boolean|undefined}
A getter/setter/toggler for the vjs-fluid className
on the Player
.
Turning this on will turn off fill mode.
Name | Type | Attributes | Description |
---|---|---|---|
bool | boolean | <optional> |
|
- The value of fluid when getting. -
undefined
when setting.
- Type:
- boolean |
undefined
focus()
Set the focus to this component
- Overrides
- Source
fullWindowOnEscKey(event)
Check for call to either exit full window or full screen on ESC key
Name | Type | Description |
---|---|---|
event | string | Event to check for key press |
getAttribute(attribute) → {string|null}
Get the value of an attribute on the Component
s element.
Name | Type | Description |
---|---|---|
attribute | string | Name of the attribute to get the value from. |
- Overrides
- Source
- See
- The value of the attribute that was asked for. - Can be an empty string on some browsers if the attribute does not exist or has no value - Most browsers will return null if the attribute does not exist or has no value.
- Type:
- string |
null
getCache() → {Object}
Get object for cached values.
get the current object cache
- Type:
- Object
getChild(name) → {Component|undefined}
Returns the child Component
with the given name
.
Name | Type | Description |
---|---|---|
name | string | The name of the child |
- Overrides
- Source
The child Component
with the given name
or undefined.
- Type:
- Component |
undefined
getChildById(id) → {Component|undefined}
Returns the child Component
with the given id
.
Name | Type | Description |
---|---|---|
id | string | The id of the child |
- Overrides
- Source
The child Component
with the given id
or undefined.
- Type:
- Component |
undefined
getDescendant(…names) → {Component|undefined}
Returns the descendant Component
following the givent descendant names
. For instance ['foo', 'bar', 'baz'] would try to get 'foo' on the current component, 'bar' on the 'foo' component and 'baz' on the 'bar' component and return undefined if any of those don't exist.
Name | Type | Attributes | Description |
---|---|---|---|
names | ...Array.<string> | | <repeatable> | The name of the child |
- Overrides
- Source
The descendant Component
following the given descendant names
or undefined.
- Type:
- Component |
undefined
getIsAvailableToBeFocused(el) → {boolean}
Determine whether or not this component is currently visible/enabled/etc...
Name | Type | Description |
---|---|---|
el | HTMLElement | The HTML element representing the component. |
- Overrides
- Source
If the component can is currently visible & enabled, will be true
. Otherwise, false
.
- Type:
- boolean
getIsFocusable(el) → {boolean}
Determine whether or not this component can be considered as focusable component.
Name | Type | Description |
---|---|---|
el | HTMLElement | The HTML element representing the component. |
- Overrides
- Source
If the component can be focused, will be true
. Otherwise, false
.
- Type:
- boolean
getMedia() → {Player~MediaObject}
Get a clone of the current Player~MediaObject for this player.
If the loadMedia
method has not been used, will attempt to return a Player~MediaObject based on the current state of the player.
- Type:
- Player~MediaObject
getPositions() → {Object}
Retrieves the position and size information of the component's element.
- Overrides
- Source
An object with boundingClientRect
and center
properties. - boundingClientRect
: An object with properties x
, y
, width
, height
, top
, right
, bottom
, and left
, representing the bounding rectangle of the element. - center
: An object with properties x
and y
, representing the center point of the element. width
and height
are set to 0.
- Type:
- Object
getVideoPlaybackQuality() → {Object|undefined}
Gets available media playback quality metrics as specified by the W3C's Media Playback Quality API.
- See
An object with supported media playback quality metrics or undefined if there is no tech or the tech does not support it.
- Type:
- Object |
undefined
handleHotkeys(event)
Called when this Player receives a hotkey keydown event. Supported player-wide hotkeys are:
f - toggle fullscreen m - toggle mute k or Space - toggle play/pause
Name | Type | Description |
---|---|---|
event | Event | The |
handleKeyDown(event)
Called when this Player has focus and a key gets pressed down, or when any Component of this player receives a key press that it doesn't handle. This allows player-wide hotkeys (either as defined below, or optionally by an external function).
Name | Type | Description |
---|---|---|
event | KeyboardEvent | The |
- Overrides
- event:keydown
handleKeyPress(event)
Many components used to have a handleKeyPress
method, which was poorly named because it listened to a keydown
event. This method name now delegates to handleKeyDown
. This means anyone calling handleKeyPress
will not see their method calls stop working.
Name | Type | Description |
---|---|---|
event | KeyboardEvent | The event that caused this function to be called. |
- Overrides
- Source
(abstract) handleLanguagechange()
Handles language change for the player in components. Should be overridden by sub-components.
- Overrides
- Source
handleSrc_(sourceopt, isRetryopt) → {string|undefined}
Executes source setting and getting logic
Name | Type | Attributes | Description |
---|---|---|---|
source | Tech~SourceObject | | <optional> | A SourceObject, an array of SourceObjects, or a string referencing a URL to a media source. It is highly recommended that an object or array of objects is used here, so that source selection algorithms can take the
|
isRetry | boolean | <optional> | Indicates whether this is being called internally as a result of a retry |
If the source
argument is missing, returns the current source URL. Otherwise, returns nothing/undefined.
- Type:
- string |
undefined
hasClass(classToCheck) → {boolean}
Check if a component's element has a CSS class name.
Name | Type | Description |
---|---|---|
classToCheck | string | CSS class name to check. |
- Overrides
- Source
- True if the
Component
has the class. - False if theComponent
does not have the class`
- Type:
- boolean
hasStarted(request) → {boolean}
Add/remove the vjs-has-started class
Name | Type | Description |
---|---|---|
request | boolean |
|
the boolean value of hasStarted_
- Type:
- boolean
height(valueopt) → {number|undefined}
A getter/setter for the Player
's height. Returns the player's configured value. To get the current height use currentheight()
.
Name | Type | Attributes | Description |
---|---|---|---|
value | number | | <optional> | CSS value to set the |
- Overrides
- The current height of the
Player
when getting. - Nothing when setting
- Type:
- number |
undefined
hide()
Hide the Component
s element if it is currently showing by adding the 'vjs-hidden` class name to it.
- Overrides
- Source
id() → {string}
Get this Component
s ID
- Overrides
- Source
The id of this Component
- Type:
- string
initChildren()
Add and initialize default child Component
s based upon options.
- Overrides
- Source
isAudio(boolopt) → {boolean|undefined}
Gets or sets the audio flag
Name | Type | Attributes | Description |
---|---|---|---|
bool | boolean | <optional> |
|
- The current value of isAudio when getting - Nothing when setting
- Type:
- boolean |
undefined
isDisposed() → {boolean}
Determine whether or not this component has been disposed.
- Overrides
- Source
If the component has been disposed, will be true
. Otherwise, false
.
- Type:
- boolean
isFullscreen(isFSopt) → {boolean|undefined}
Check if the player is in fullscreen mode or tell the player that it is or is not in fullscreen mode.
NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official property and instead document.fullscreenElement is used. But isFullscreen is still a valuable property for internal player workings.
Name | Type | Attributes | Description |
---|---|---|---|
isFS | boolean | <optional> | Set the players current fullscreen state |
- true if fullscreen is on and getting - false if fullscreen is off and getting - Nothing when setting
- Type:
- boolean |
undefined
isInPictureInPicture(isPiPopt) → {boolean|undefined}
Check if the player is in Picture-in-Picture mode or tell the player that it is or is not in Picture-in-Picture mode.
Name | Type | Attributes | Description |
---|---|---|---|
isPiP | boolean | <optional> | Set the players current Picture-in-Picture state |
- true if Picture-in-Picture is on and getting - false if Picture-in-Picture is off and getting - nothing if setting
- Type:
- boolean |
undefined
language(codeopt) → {string|undefined}
Set or get the player's language code.
Changing the language will trigger languagechange which Components can use to update control text. ClickableComponent will update its control text by default on languagechange.
Name | Type | Attributes | Description |
---|---|---|---|
code | string | <optional> | the language code to set the player to |
- The current language code when getting - Nothing when setting
- Type:
- string |
undefined
languages() → {Array}
Get the player's language dictionary Merge every time, because a newly added plugin might call videojs.addLanguage() at any time Languages specified directly in the player options have precedence
An array of of supported languages
- Type:
- Array
load()
Begin loading the src data.
loadMedia(media, ready)
Populate the player using a MediaObject.
Name | Type | Description |
---|---|---|
media | Player~MediaObject | A media object. |
ready | function | A callback to be called when the player is ready. |
localize(string, tokensopt, defaultValueopt) → {string}
Localize a string given the string in english.
If tokens are provided, it'll try and run a simple token replacement on the provided string. The tokens it looks for look like {1}
with the index being 1-indexed into the tokens array.
If a defaultValue
is provided, it'll use that over string
, if a value isn't found in provided language files. This is useful if you want to have a descriptive key for token replacement but have a succinct localized string and not require en.json
to be included.
Currently, it is used for the progress bar timing.
{
"progress bar timing: currentTime={1} duration={2}": "{1} of {2}"
}
It is then used like so:
this.localize('progress bar timing: currentTime={1} duration{2}',
[this.player_.currentTime(), this.player_.duration()],
'{1} of {2}');
Which outputs something like: 01:23 of 24:56
.
Name | Type | Attributes | Description |
---|---|---|---|
string | string | The string to localize and the key to lookup in the language files. | |
tokens | Array.<string> | <optional> | If the current item has token replacements, provide the tokens here. |
defaultValue | string | <optional> | Defaults to |
- Overrides
- Source
The localized string or if no localization exists the english string.
- Type:
- string
loop(valueopt) → {boolean|undefined}
Get or set the loop attribute on the video element.
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | <optional> |
|
- The current value of loop when getting - Nothing when setting
- Type:
- boolean |
undefined
manualAutoplay_()
Handle autoplay string values, rather than the typical boolean values that should be handled by the tech. Note that this is not part of any specification. Valid values and what they do can be found on the autoplay getter at Player#autoplay()
muted(mutedopt) → {boolean|undefined}
Get the current muted state, or turn mute on or off
Name | Type | Attributes | Description |
---|---|---|---|
muted | boolean | <optional> |
|
- true if mute is on and getting - false if mute is off and getting - nothing if setting
- Type:
- boolean |
undefined
name() → {string}
Get the Component
s name. The name gets used to reference the Component
and is set during registration.
- Overrides
- Source
The name of this Component
.
- Type:
- string
networkState() → {number}
Returns the current state of network activity for the element, from the codes in the list below.
- NETWORK_EMPTY (numeric value 0) The element has not yet been initialised. All attributes are in their initial states.
- NETWORK_IDLE (numeric value 1) The element's resource selection algorithm is active and has selected a resource, but it is not actually using the network at this time.
- NETWORK_LOADING (numeric value 2) The user agent is actively trying to download data.
- NETWORK_NO_SOURCE (numeric value 3) The element's resource selection algorithm is active, but it has not yet found a resource to use.
the current network activity state
- Type:
- number
options(obj) → {Object}
Deep merge of options objects with new options.
Note: When both
obj
andoptions
contain properties whose values are objects. The two properties get merged using module:obj.merge
Name | Type | Description |
---|---|---|
obj | Object | The object that contains new options. |
- Overrides
- Source
A new object of this.options_
and obj
merged together.
- Type:
- Object
pause()
Pause the video playback
paused() → {boolean}
Check if the player is paused or has yet to play
- false: if the media is currently playing - true: if media is not currently playing
- Type:
- boolean
play() → {Promise|undefined}
Attempt to begin playback at the first opportunity.
Returns a promise if the browser supports Promises (or one was passed in as an option). This promise will be resolved on the return value of play. If this is undefined it will fulfill the promise chain otherwise the promise chain will be fulfilled when the promise from play is fulfilled.
- Type:
- Promise |
undefined
playbackRate(rateopt) → {number|undefined}
Gets or sets the current playback rate. A playback rate of 1.0 represents normal speed and 0.5 would indicate half-speed playback, for instance.
Name | Type | Attributes | Description |
---|---|---|---|
rate | number | <optional> | New playback rate to set. |
- The current playback rate when getting or 1.0 - Nothing when setting
- Type:
- number |
undefined
playbackRates(newRatesopt) → {Array.<number>}
Set or get current playback rates. Takes an array and updates the playback rates menu with the new items. Pass in an empty array to hide the menu. Values other than arrays are ignored.
Name | Type | Attributes | Description |
---|---|---|---|
newRates | Array.<number> | <optional> | The new rates that the playback rates menu should update to. An empty array will hide the menu |
When used as a getter will return the current playback rates
- Type:
- Array.<number>
played() → {TimeRange}
Get a TimeRange object representing the current ranges of time that the user has played.
A time range object that represents all the increments of time that have been played.
- Type:
- TimeRange
player() → {Player}
Return the Player that the Component
has attached to.
- Overrides
- Source
The player that this Component
has attached to.
- Type:
- Player
playsinline(valueopt) → {string|undefined}
Set or unset the playsinline attribute. Playsinline tells the browser that non-fullscreen playback is preferred.
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | <optional> |
|
- See
- the current value of playsinline - Nothing when setting
- Type:
- string |
undefined
poster(srcopt) → {string|undefined}
Get or set the poster image source url
Name | Type | Attributes | Description |
---|---|---|---|
src | string | <optional> | Poster image source URL |
- The current value of poster when getting - Nothing when setting
- Type:
- string |
undefined
preload(valueopt) → {string|undefined}
Get or set the preload attribute
Name | Type | Attributes | Description |
---|---|---|---|
value | 'none' | | <optional> | Preload mode to pass to tech |
- The preload attribute value when getting - Nothing when setting
- Type:
- string |
undefined
ready(fn)
Bind a listener to the component's ready state. Different from event listeners in that if the ready event has already happened it will trigger the function immediately.
Name | Type | Description |
---|---|---|
fn | ReadyCallback | Function that gets called when the |
- Overrides
- Source
readyState() → {number}
Returns a value that expresses the current state of the element with respect to rendering the current playback position, from the codes in the list below.
- HAVE_NOTHING (numeric value 0) No information regarding the media resource is available.
- HAVE_METADATA (numeric value 1) Enough of the resource has been obtained that the duration of the resource is available.
- HAVE_CURRENT_DATA (numeric value 2) Data for the immediate current playback position is available.
- HAVE_FUTURE_DATA (numeric value 3) Data for the immediate current playback position is available, as well as enough data for the user agent to advance the current playback position in the direction of playback.
- HAVE_ENOUGH_DATA (numeric value 4) The user agent estimates that enough data is available for playback to proceed uninterrupted.
the current playback rendering state
- Type:
- number
remainingTime() → {number}
Calculates how much time is left in the video. Not part of the native video API.
The time remaining in seconds
- Type:
- number
remainingTimeDisplay() → {number}
A remaining time function that is intended to be used when the time is to be displayed directly to the user.
The rounded time remaining in seconds
- Type:
- number
remoteTextTrackEls() → {HtmlTrackElementList}
Get the remote HtmlTrackElementList tracks.
The current remote text track element list
- Type:
- HtmlTrackElementList
remoteTextTracks() → {TextTrackList}
Get the remote TextTrackList
The current remote text track list
- Type:
- TextTrackList
removeAttribute(attribute)
Remove an attribute from the Component
s element.
Name | Type | Description |
---|---|---|
attribute | string | Name of the attribute to remove. |
- Overrides
- Source
- See
removeChild(component)
Remove a child Component
from this Component
s list of children. Also removes the child Component
s element from this Component
s element.
Name | Type | Description |
---|---|---|
component | Component | The child |
- Overrides
- Source
removeClass(…classesToRemove)
Remove a CSS class name from the Component
s element.
Name | Type | Attributes | Description |
---|---|---|---|
classesToRemove | string | <repeatable> | One or more CSS class name to remove. |
- Overrides
- Source
removeRemoteTextTrack(track) → {undefined}
Remove a remote TextTrack from the respective TextTrackList and HtmlTrackElementList.
Name | Type | Description |
---|---|---|
track | Object | Remote TextTrack to remove |
does not return anything
- Type:
- undefined
removeSourceElement(srcUrl) → {boolean}
Remove a
Name | Type | Description |
---|---|---|
srcUrl | string | The URL of the source to remove. |
Returns true if the source element was successfully removed, false otherwise.
- Type:
- boolean
reportUserActivity(event)
Report user activity
Name | Type | Description |
---|---|---|
event | Object | Event object |
requestAnimationFrame(fn) → {number}
Queues up a callback to be passed to requestAnimationFrame (rAF), but with a few extra bonuses:
Supports browsers that do not support rAF by falling back to Component#setTimeout.
The callback is turned into a Component~GenericCallback (i.e. bound to the component).
Automatic cancellation of the rAF callback is handled if the component is disposed before it is called.
Name | Type | Description |
---|---|---|
fn | Component~GenericCallback | A function that will be bound to this component and executed just before the browser's next repaint. |
- Overrides
- Source
- See
Returns an rAF ID that gets used to identify the timeout. It can also be used in Component#cancelAnimationFrame to cancel the animation frame callback.
- Type:
- number
requestFullscreen(fullscreenOptionsopt)
Increase the size of the video to full screen In some browsers, full screen is not supported natively, so it enters "full window mode", where the video fills the browser window. In browsers and devices that support native full screen, sometimes the browser's default controls will be shown, and not the Video.js custom skin. This includes most mobile devices (iOS, Android) and older versions of Safari.
Name | Type | Attributes | Description |
---|---|---|---|
fullscreenOptions | Object | <optional> | Override the player fullscreen options |
requestNamedAnimationFrame(name, fn)
Request an animation frame, but only one named animation frame will be queued. Another will never be added until the previous one finishes.
Name | Type | Description |
---|---|---|
name | string | The name to give this requestAnimationFrame |
fn | Component~GenericCallback | A function that will be bound to this component and executed just before the browser's next repaint. |
- Overrides
- Source
requestPictureInPicture() → {Promise}
Create a floating video window always on top of other windows so that users may continue consuming media while they interact with other content sites, or applications on their device.
This can use document picture-in-picture or element picture in picture
Set enableDocumentPictureInPicture
to true
to use docPiP on a supported browser Else set disablePictureInPicture
to false
to disable elPiP on a supported browser
A promise with a Picture-in-Picture window.
- Type:
- Promise
reset()
Reset the player. Loads the first tech in the techOrder, removes all the text tracks in the existing tech
, and calls reset
on the tech
.
resetControlBarUI_()
Reset Control Bar's UI by calling sub-methods that reset all of Control Bar's components
resetPlaybackRate_()
Reset Playback ratio
resetProgressBar_()
Reset tech's progress so progress bar is reset in the UI
resetVolumeBar_()
Reset Volume bar
responsive(valueopt) → {boolean|undefined}
Get or set a flag indicating whether or not this player should adjust its UI based on its dimensions.
Name | Type | Attributes | Description |
---|---|---|---|
value | boolean | <optional> | Should be |
Will be true
if this player should adjust its UI based on its dimensions; otherwise, will be false
. Nothing if setting
- Type:
- boolean |
undefined
runPlayCallbacks_(val)
When a callback to play is delayed we have to run these callbacks when play is actually called on the tech. This function runs the callbacks that were delayed and accepts the return value from the tech.
Name | Type | Description |
---|---|---|
val | undefined | | The return value from the tech. |
runPlayTerminatedQueue_()
These functions will be run when if play is terminated. If play runPlayCallbacks_ is run these function will not be run. This allows us to differentiate between a terminated play and an actual call to play.
scrubbing(isScrubbingopt) → {boolean|undefined}
Sets or returns whether or not the user is "scrubbing". Scrubbing is when the user has clicked the progress bar handle and is dragging it along the progress bar.
Name | Type | Attributes | Description |
---|---|---|---|
isScrubbing | boolean | <optional> | whether the user is or is not scrubbing |
- The value of scrubbing when getting - Nothing when setting
- Type:
- boolean |
undefined
seekable() → {TimeRange}
Get the TimeRanges of the media that are currently available for seeking to.
A mock TimeRanges object (following HTML spec)
- Type:
- TimeRange
seeking() → {boolean}
Returns whether the player is in the "seeking" state.
True if the player is in the seeking state, false if not.
- Type:
- boolean
selectSource(sources) → {Object|boolean}
Select source based on tech-order or source-order Uses source-order selection if options.sourceOrder
is truthy. Otherwise, defaults to tech-order selection
Name | Type | Description |
---|---|---|
sources | Array | The sources for a media asset |
Object of source and tech order or false
- Type:
- Object |
boolean
setAttribute(attribute, value)
Set the value of an attribute on the Component
's element
Name | Type | Description |
---|---|---|
attribute | string | Name of the attribute to set. |
value | string | Value to set the attribute to. |
- Overrides
- Source
- See
setIcon(iconName, elopt) → {Element}
Adds an SVG icon element to another element or component.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
iconName | string | The name of icon. A list of all the icon names can be found at 'sandbox/svg-icons.html' | ||
el | Element | <optional> | this.el() | Element to set the title on. Defaults to the current Component's element. |
- Overrides
- Source
The newly created icon element.
- Type:
- Element
setInterval(fn, interval) → {number}
Creates a function that gets run every x
milliseconds. This function is a wrapper around window.setInterval
. There are a few reasons to use this one instead though.
- It gets cleared via Component#clearInterval when Component#dispose gets called.
- The function callback will be a Component~GenericCallback
Name | Type | Description |
---|---|---|
fn | Component~GenericCallback | The function to run every |
interval | number | Execute the specified function every |
- Overrides
- Source
- See
Returns an id that can be used to identify the interval. It can also be be used in Component#clearInterval to clear the interval.
- Type:
- number
setTimeout(fn, timeout) → {number}
Creates a function that runs after an x
millisecond timeout. This function is a wrapper around window.setTimeout
. There are a few reasons to use this one instead though:
- It gets cleared via Component#clearTimeout when Component#dispose gets called.
- The function callback will gets turned into a Component~GenericCallback
Note: You can't use
window.clearTimeout
on the id returned by this function. This will cause its dispose listener not to get cleaned up! Please use Component#clearTimeout or Component#dispose instead.
Name | Type | Description |
---|---|---|
fn | Component~GenericCallback | The function that will be run after |
timeout | number | Timeout in milliseconds to delay before executing the specified function. |
- Overrides
- Source
- See
Returns a timeout ID that gets used to identify the timeout. It can also get used in Component#clearTimeout to clear the timeout that was set.
- Type:
- number
show()
Show the Component
s element if it is hidden by removing the 'vjs-hidden' class name from it.
- Overrides
- Source
src(sourceopt) → {string|undefined}
Get or set the video source.
Name | Type | Attributes | Description |
---|---|---|---|
source | Tech~SourceObject | | <optional> | A SourceObject, an array of SourceObjects, or a string referencing a URL to a media source. It is highly recommended that an object or array of objects is used here, so that source selection algorithms can take the
|
If the source
argument is missing, returns the current source URL. Otherwise, returns nothing/undefined.
- Type:
- string |
undefined
supportsFullScreen() → {boolean}
Check if current tech can support native fullscreen (e.g. with built in controls like iOS)
if native fullscreen is supported
- Type:
- boolean
tech(safetyopt) → {Tech}
Return a reference to the current Tech. It will print a warning by default about the danger of using the tech directly but any argument that is passed in will silence the warning.
Name | Type | Attributes | Description |
---|---|---|---|
safety | * | <optional> | Anything passed in to silence the warning |
The Tech
- Type:
- Tech
textTracks() → {TextTrackList}
Get the TextTrackList
the current text track list
- Type:
- TextTrackList
toJSON() → {Object}
returns a JavaScript object representing the current track information. DOES not return it as JSON
Object representing the current of track info
- Type:
- Object
toggleClass(classToToggle, predicateopt)
Add or remove a CSS class name from the component's element.
classToToggle
gets added when Component#hasClass would return false.classToToggle
gets removed when Component#hasClass would return true.
Name | Type | Attributes | Description |
---|---|---|---|
classToToggle | string | The class to add or remove. Passed to DOMTokenList's toggle() | |
predicate | boolean | | <optional> | A boolean or function that returns a boolean. Passed to DOMTokenList's toggle(). |
- Overrides
- Source
triggerReady()
Trigger all the ready listeners for this Component
.
- Overrides
- Source
updateSourceCaches_(srcObj)
Update the internal source caches so that we return the correct source from src()
, currentSource()
, and currentSources()
.
Note:
currentSources
will not be updated if the source that is passed in exists in the currentcurrentSources
cache.
Name | Type | Description |
---|---|---|
srcObj | Tech~SourceObject | A string or object source to update our caches to. |
userActive(boolopt) → {boolean|undefined}
Get/set if user is active
Name | Type | Attributes | Description |
---|---|---|---|
bool | boolean | <optional> |
|
- The current value of userActive when getting - Nothing when setting
- Type:
- boolean |
undefined
usingNativeControls(boolopt) → {boolean|undefined}
Toggle native controls on/off. Native controls are the controls built into devices (e.g. default iPhone controls) or other techs (e.g. Vimeo Controls) This should only be set by the current tech, because only the tech knows if it can support native controls
Name | Type | Attributes | Description |
---|---|---|---|
bool | boolean | <optional> |
|
- The current value of native controls when getting - Nothing when setting
- Type:
- boolean |
undefined
usingPlugin(name) → {boolean}
Reports whether or not a player is using a plugin by name.
For basic plugins, this only reports whether the plugin has ever been initialized on this player.
Name | Type | Description |
---|---|---|
name | string | The name of a plugin. |
Whether or not this player is using the requested plugin.
- Type:
- boolean
version() → {PlayerVersion}
Returns an object with Video.js version.
An object with Video.js version.
- Type:
- PlayerVersion
videoHeight() → {number}
Get video height
current video height
- Type:
- number
videoTracks() → {VideoTrackList}
Get the VideoTrackList
the current video track list
- Type:
- VideoTrackList
videoWidth() → {number}
Get video width
current video width
- Type:
- number
volume(percentAsDecimalopt) → {number|undefined}
Get or set the current volume of the media
Name | Type | Attributes | Description |
---|---|---|---|
percentAsDecimal | number | <optional> | The new volume as a decimal percent: - 0 is muted/0%/off - 1.0 is 100%/full - 0.5 is half volume or 50% |
The current volume as a percent when getting
- Type:
- number |
undefined
width(valueopt) → {number|undefined}
A getter/setter for the Player
's width. Returns the player's configured value. To get the current width use currentWidth()
.
Name | Type | Attributes | Description |
---|---|---|---|
value | number | | <optional> | CSS value to set the |
- Overrides
- The current width of the
Player
when getting. - Nothing when setting
- Type:
- number |
undefined
(static) getTagSettings(tag) → {Object}
Gets tag settings
Name | Type | Description |
---|---|---|
tag | Element | The player tag |
An object containing all of the settings for a player tag
- Type:
- Object
Type Definitions
MediaObject
An object that describes a single piece of media.
Properties that are not part of this type description will be retained; so, this can be viewed as a generic metadata storage mechanism as well.
- Object
Name | Type | Attributes | Description |
---|---|---|---|
album | string | <optional> | Unused, except if this object is passed to the |
artist | string | <optional> | Unused, except if this object is passed to the |
artwork | Array.<Object> | <optional> | Unused, except if this object is passed to the |
poster | string | <optional> | URL to an image that will display before playback. |
src | Tech~SourceObject | | <optional> | A single source object, an array of source objects, or a string referencing a URL to a media source. It is highly recommended that an object or array of objects is used here, so that source selection algorithms can take the |
title | string | <optional> | Unused, except if this object is passed to the |
textTracks | Array.<Object> | <optional> | An array of objects to be used to create text tracks, following the native track element format. For ease of removal, these will be created as "remote" text tracks and set to automatically clean up on source changes.
|
Events
beforepluginsetup:$name
Signals that a plugin is about to be set up on a player - by name. The name is the name of the plugin.
abort
Fires when the loading of an audio/video is aborted.
beforepluginsetup
Signals that a plugin is about to be set up on a player.
canplay
The media has a readyState of HAVE_FUTURE_DATA or greater.
canplaythrough
The media has a readyState of HAVE_ENOUGH_DATA or greater. This means that the entire media file can be played without buffering.
componentresize
Triggered when a component is resized.
- Overrides
- Source
controlsdisabled
controlsenabled
dispose
Called when the player is being disposed of.
- Overrides
durationchange
emptied
Fires when the current playlist is empty.
ended
Fired when the end of the media resource is reached (currentTime == duration)
enterFullWindow
enterpictureinpicture
This event fires when the player enters picture in picture mode
error
exitFullWindow
fullscreenchange
languagechange
fires when the player language change
leavepictureinpicture
This event fires when the player leaves picture in picture mode
loadeddata
Fires when the browser has loaded the current frame of the audio/video.
- event
loadeddata
Fired when the player has downloaded data at the current playback position
loadedmetadata
Fires when the browser has loaded meta data for the audio/video.
loadedmetadata
Fired when the player has initial duration and dimension information
loadstart
Fired when the user agent begins looking for media data
pause
Fired whenever the media has been paused
play
Triggered whenever an Tech#play event happens. Indicates that playback has started or resumed.
playbackrateschange
fires when the playback rates in a player are changed
playerresize
Called when the player size has changed
- Source
playing
The media is no longer blocked from playback, and has started playing.
pluginsetup
Signals that a plugin has just been set up on a player.
posterchange
This event fires when the poster image is changed on the player.
progress
Fired while the user agent is downloading media data.
ratechange
Fires when the playing speed of the audio/video is changed
- event
ready
Triggered when a Component
is ready.
- Overrides
- Source
resize
Fires when the video's intrinsic dimensions change
- event
seeked
Fired when the player has finished jumping to a new time
seeking
Fired whenever the player is jumping to a new time
sourceset
EXPERIMENTAL Fired when the source is set or changed on the Tech causing the media element to reload.
It will fire for the initial source and each subsequent source. This event is a custom event from Video.js and is triggered by the Tech.
The event object for this event contains a src
property that will contain the source that was available when the event was triggered. This is generally only necessary if Video.js is switching techs while the source was being changed.
It is also fired when load
is called on the player (or media element) because the specification for load
says that the resource selection algorithm needs to be aborted and restarted. In this case, it is very likely that the src
property will be set to the empty string ""
to indicate we do not know what the source will be but that it is changing.
This event is currently still experimental and may change in minor releases. To use this, pass enableSourceset
option to the player.
Name | Type | Description |
---|---|---|
src | string | The source url available when the |
stalled
Fires when the browser is trying to get media data, but data is not available.
suspend
Fires when the browser is intentionally not getting media data.
tap
Triggered when a Component
is tapped.
- MouseEvent
- Overrides
- Source
textdata
Fires when we get a textdata event from tech
texttrackchange
Fires when the text track has been changed
- event
timeupdate
Fires when the current playback position has changed.
- event
timeupdate
Fired when the current playback position has changed * During playback this is fired every 15-250 milliseconds, depending on the playback technology in use.
useractive
userinactive
usingcustomcontrols
player is using the custom HTML controls
usingnativecontrols
player is using the native device controls
volumechange
Fires when the volume has been changed
- event
volumechange
Fired when the volume changes
waiting
A readyState change on the DOM element has caused playback to stop.
pluginsetup:$name
Signals that a plugin has just been set up on a player - by name. The name is the name of the plugin.