new Html5(optionsopt, ready)
Create an instance of this Tech.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
Object |
<optional> |
The key/value store of player options. |
ready |
Component~ReadyCallback | Callback function to call when the |
- Mixes In:
- Tech~SouceHandlerAdditions
Extends
Members
-
featuresFullscreenResize :boolean
-
Boolean indicating whether the
HTML5
tech currently supports automatic media resize when going into fullscreen.- Overrides:
- Default Value:
- true
-
featuresNativeAudioTracks :boolean
-
Boolean indicating whether the
HTML5
tech currently supports nativeAudioTrack
s.- Default Value:
-
featuresNativeTextTracks :boolean
-
Boolean indicating whether the
HTML5
tech currently supports nativeTextTrack
s.- Overrides:
- Default Value:
-
featuresNativeVideoTracks :boolean
-
Boolean indicating whether the
HTML5
tech currently supports nativeVideoTrack
s.- Default Value:
-
featuresPlaybackRate :boolean
-
Boolean indicating whether the
Tech
supports changing the speed at which the media plays. Examples:- Set player to play 2x (twice) as fast
- Set player to play 0.5x (half) as fast
- Overrides:
- Default Value:
-
featuresProgressEvents :boolean
-
Boolean indicating whether the
HTML5
tech currently supports the progress event. If this is false, manualprogress
events will be triggred instead.- Overrides:
- Default Value:
- true
-
featuresTimeupdateEvents
-
Boolean indicating whether the
HTML5
tech currently supports the timeupdate event. If this is false, manualtimeupdate
events will be triggred instead.- Overrides:
- Default Value:
- true
-
featuresVolumeControl :boolean
-
Boolean indicating whether the
Tech
supports volume control.- Overrides:
- Default Value:
-
movingMediaElementInDOM :boolean
-
Boolean indicating whether the
HTML5
tech currently supports the media element moving in the DOM. iOS breaks if you move the media element, so this is set this to false there. Everywhere else this should be true. -
static nativeSourceHandler
-
Native source handler for Html5, simply passes the source to the media element.
Methods
-
addRemoteTextTrack(options, manualCleanupopt) → {HTMLTrackElement}
-
Creates a remote text track object and returns an html track element.
Parameters:
Name Type Attributes Default Description options
Object The object should contain values for kind, language, label, and src (location of the WebVTT file)
manualCleanup
Boolean <optional>
true if set to false, the TextTrack will be automatically removed from the video element whenever the source changes
Returns:
HTMLTrackElement -An Html Track Element. This can be an emulated HTMLTrackElement or a native one.
- Overrides:
- Deprecated:
- The default value of the "manualCleanup" parameter will default to "false" in upcoming versions of Video.js
-
addTextTrack(kind, labelopt, languageopt) → {TextTrack}
-
Create and returns a remote TextTrack object.
Parameters:
Name Type Attributes Description kind
string TextTrack
kind (subtitles, captions, descriptions, chapters, or metadata)label
string <optional>
Label to identify the text track
language
string <optional>
Two letter language abbreviation
- Overrides:
-
addWebVttScript_()
-
Emulate TextTracks using vtt.js if necessary
Fires:
- Tech#event:vttjsloaded
- Tech#event:vttjserror
- Inherited From:
-
audioTracks() → {AudioTrackList}
-
Get the AudioTrackList
Returns:
AudioTrackList- Inherited From:
-
autoplay() → {boolean}
-
Get the value of
autoplay
from the media element.autoplay
indicates that the media should start to play as soon as the page is ready.Returns:
boolean -- The value of
autoplay
from the media element.- True indicates that the media should start as soon as the page loads. - False indicates that the media should not start as soon as the page loads.
- See:
- The value of
-
buffered() → {TimeRange}
-
Get the value of
buffered
from the media element.buffered
is aTimeRange
object that represents the parts of the media that are already downloaded and available for playback.Returns:
TimeRange -The value of
buffered
from the media element.- Overrides:
- See:
-
bufferedPercent() → {number}
-
Get the percentage of the current video that is currently buffered.
Returns:
number -A number from 0 to 1 that represents the decimal percentage of the video that is buffered.
- Inherited From:
-
cleanupAutoTextTracks()
-
Remove any TextTracks added via addRemoteTextTrack that are flagged for automatic garbage collection
- Inherited From:
-
clearTracks(types)
-
Clear out a single
TrackList
or an array ofTrackLists
given their names.Note: Techs without source handlers should call this between sources for
video
&audio
tracks. You don't want to use them between tracks!Parameters:
Name Type Description types
Array.<string> | string TrackList names to clear, valid names are
video
,audio
, andtext
.- Inherited From:
-
controls() → {boolean}
-
Get the value of
controls
from the media element.controls
indicates whether the native media controls should be shown or hidden.Returns:
boolean -- The value of
controls
from the media element.- True indicates that native controls should be showing. - False indicates that native controls should be hidden.
- See:
- The value of
-
createEl() → {Element}
-
Create the
Html5
Tech's DOM element.Returns:
Element -The element that gets created.
-
createRemoteTextTrack(options) → {HTMLTrackElement}
-
Creates either native TextTrack or an emulated TextTrack depending on the value of
featuresNativeTextTracks
Parameters:
Name Type Description options
Object The object should contain the options to intialize the TextTrack with.
Properties
Name Type Attributes Description kind
string <optional>
TextTrack
kind (subtitles, captions, descriptions, chapters, or metadata).label
string <optional>
Label to identify the text track
language
string <optional>
Two letter language abbreviation.
default
boolean <optional>
Default this track to on.
id
string <optional>
The internal id to assign this track.
src
string <optional>
A source url for the track.
- Overrides:
-
currentSrc() → {Tech~SourceObject}
-
Get the current source on the
HTML5
Tech. Falls back to returning the source from the HTML5 media element.Returns:
Tech~SourceObject -The current source object from the HTML5 tech. With a fallback to the elements source.
-
currentTime() → {number}
-
Get the value of
currentTime
from the media element.currentTime
indicates the current second that the media is at in playback.Returns:
number -The value of
currentTime
from the media element.- See:
-
defaultMuted() → {boolean}
-
Get the value of
defaultMuted
from the media element.defaultMuted
indicates whether the media should start muted or not. Only changes the default state of the media.muted
anddefaultMuted
can have different values. Html5#muted indicates the current state.Returns:
boolean -- The value of
defaultMuted
from the media element.- True indicates that the media should start muted. - False indicates that the media should not start muted
- See:
- The value of
-
defaultPlaybackRate() → {number}
-
Get the value of
defaultPlaybackRate
from the media element.defaultPlaybackRate
indicates the rate at which the media is currently playing back. This value will not indicate the currentplaybackRate
after playback has started, use Html5#playbackRate for that.Examples:
- if defaultPlaybackRate is set to 2, media will play twice as fast.
- if defaultPlaybackRate is set to 0.5, media will play half as fast.
Returns:
number -The value of
defaultPlaybackRate
from the media element. A number indicating the current playback speed of the media, where 1 is normal speed.- See:
-
dispose()
-
Dispose of
HTML5
media element and remove all tracks.- Overrides:
-
duration() → {number}
-
Get the current duration of the HTML5 media element.
Returns:
number -The duration of the media or 0 if there is no duration.
-
emulateTextTracks()
-
Emulate texttracks
- Inherited From:
-
ended() → {boolean}
-
Get the value of
ended
from the media element.ended
indicates whether the media has reached the end or not.Returns:
boolean -- The value of
ended
from the media element.- True indicates that the media has ended. - False indicates that the media has not ended.
- See:
- The value of
-
enterFullScreen()
-
Request that the
HTML5
Tech enter fullscreen. -
error() → {MediaError|null}
-
Get the value of the
error
from the media element.error
indicates any MediaError that may have occured during playback. If error returns null there is no current error.Returns:
MediaError | null -The value of
error
from the media element. Will beMediaError
if there is a current error and null otherwise.- Overrides:
- See:
-
exitFullScreen()
-
Request that the
HTML5
Tech exit fullscreen. -
getVideoPlaybackQuality() → {Object}
-
Gets available media playback quality metrics as specified by the W3C's Media Playback Quality API.
Returns:
Object -An object with supported media playback quality metrics
- Overrides:
- See:
-
handleLateInit_() → {undefined}
-
This will be triggered if the loadstart event has already fired, before videojs was ready. Two known examples of when this can happen are:
- If we're loading the playback object after it has started loading
- The media is already playing the (often with autoplay on) then
This function will fire another loadstart so that videojs can catchup.
Fires:
- Tech#event:loadstart
Returns:
undefined -returns nothing.
-
height() → {number}
-
Get the current height of the HTML5 media element.
Returns:
number -The heigth of the HTML5 media element.
-
initTrackListeners()
-
Turn on listeners for VideoTrackList, {AudioTrackList, and TextTrackList events.
This adds EventTarget~EventListeners for
addtrack
, andremovetrack
.Fires:
- Inherited From:
-
load()
-
A wrapper around the media elements
load
function. This will call theHTML5
s media elementload
function.- See:
-
loop() → {boolean}
-
Get the value of
loop
from the media element.loop
indicates that the media should return to the start of the media and continue playing once it reaches the end.Returns:
boolean -- The value of
loop
from the media element.- True indicates that playback should seek back to start once the end of a media is reached. - False indicates that playback should not loop back to the start when the end of the media is reached.
- See:
- The value of
-
manualProgressOff()
-
Turn off the polyfill for
progress
events that was created in Tech#manualProgressOn- Inherited From:
-
manualProgressOn()
-
Polyfill the
progress
event for browsers that don't support it natively.- Inherited From:
- See:
-
manualTimeUpdatesOff()
-
Turn off the polyfill for
timeupdate
events that was created in Tech#manualTimeUpdatesOn- Inherited From:
-
manualTimeUpdatesOn()
-
Polyfill the
timeupdate
event for browsers that don't support it.- Inherited From:
- See:
-
muted() → {boolean}
-
Get the value of
muted
from the media element.muted
indicates that the volume for the media should be set to silent. This does not actually change thevolume
attribute.Returns:
boolean -- True if the value of
volume
should be ignored and the audio set to silent.- False if the value of `volume` should be used.
- See:
- True if the value of
-
networkState() → {number}
-
Get the value of
networkState
from the media element.networkState
indicates the current network state. It returns an enumeration from the following list:- 0: NETWORK_EMPTY
- 1: NEWORK_IDLE
- 2: NETWORK_LOADING
- 3: NETWORK_NO_SOURCE
Returns:
number -The value of
networkState
from the media element. This will be a number from the list in the description. -
onDurationChange(event)
-
Update our internal duration on a
durationchange
event by calling Tech#duration.Parameters:
Name Type Description event
EventTarget~Event The
durationchange
event that caused this to run.Listens to Events:
- Tech#event:durationchange
- Inherited From:
-
pause()
-
A wrapper around the media elements
pause
function. This will call theHTML5
media elementspause
function.- See:
-
paused() → {boolean}
-
Get the value of
paused
from the media element.paused
indicates whether the media element is currently paused or not.Returns:
boolean -The value of
paused
from the media element.- See:
-
play()
-
A wrapper around the media elements
play
function. This will call theHTML5
s media elementplay
function.- See:
-
playbackRate() → {number}
-
Get the value of
playbackRate
from the media element.playbackRate
indicates the rate at which the media is currently playing back. Examples:- if playbackRate is set to 2, media will play twice as fast.
- if playbackRate is set to 0.5, media will play half as fast.
Returns:
number -The value of
playbackRate
from the media element. A number indicating the current playback speed of the media, where 1 is normal speed.- See:
-
played() → {TimeRange}
-
Get the value of
played
from the media element.played
returns aTimeRange
object representing points in the media timeline that have been played.Returns:
TimeRange -The value of
played
from the media element. ATimeRange
object indicating the ranges of time that have been played.- Overrides:
- See:
-
playsinline() → {boolean}
-
Get the value of
playsinline
from the media element.playsinline
indicates to the browser that non-fullscreen playback is preferred when fullscreen playback is the native default, such as in iOS Safari.Returns:
boolean -- The value of
playsinline
from the media element.- True indicates that the media should play inline. - False indicates that the media should not play inline.
- Overrides:
- See:
- The value of
-
poster() → {string}
-
Get the value of
poster
from the media element.poster
indicates that the url of an image file that can/will be shown when no media data is available.Returns:
string -The value of
poster
from the media element. Value will be a url to an image.- See:
-
preload() → {string}
-
Get the value of
preload
from the media element.preload
indicates what should download before the media is interacted with. It can have the following values:- none: nothing should be downloaded
- metadata: poster and the first few frames of the media may be downloaded to get media dimensions and other metadata
- auto: allow the media and metadata for the media to be downloaded before interaction
Returns:
string -The value of
preload
from the media element. Will be 'none', 'metadata', or 'auto'.- See:
-
readyState() → {number}
-
Get the value of
readyState
from the media element.readyState
indicates the current state of the media element. It returns an enumeration from the following list:- 0: HAVE_NOTHING
- 1: HAVE_METADATA
- 2: HAVE_CURRENT_DATA
- 3: HAVE_FUTURE_DATA
- 4: HAVE_ENOUGH_DATA
Returns:
number -The value of
readyState
from the media element. This will be a number from the list in the description. -
remoteTextTrackEls() → {HtmlTrackElementList}
-
Get the remote element HtmlTrackElementList
Returns:
HtmlTrackElementList- Inherited From:
-
remoteTextTracks() → {TextTrackList}
-
Get the remote element TextTrackList
Returns:
TextTrackList- Inherited From:
-
removeRemoteTextTrack(track)
-
Remove remote
TextTrack
fromTextTrackList
objectParameters:
Name Type Description track
TextTrack TextTrack
object to remove- Overrides:
-
reset()
-
Reset the tech by removing all sources and then calling Html5.resetMediaElement.
- Overrides:
-
seekable() → {TimeRange}
-
Get the value of
seekable
from the media element.seekable
returns aTimeRange
object indicating ranges of time that can currently beseeked
to.Returns:
TimeRange -The value of
seekable
from the media element. ATimeRange
object indicating the current ranges of time that can be seeked to.- See:
-
seeking() → {boolean}
-
Get the value of
seeking
from the media element.seeking
indicates whether the media is currently seeking to a new position or not.Returns:
boolean -- The value of
seeking
from the media element.- True indicates that the media is currently seeking to a new position. - Flase indicates that the media is not seeking to a new position at this time.
- See:
- The value of
-
setAutoplay(autoplay)
-
Set the value of
autoplay
on the media element.autoplay
indicates that the media should start to play as soon as the page is ready.Parameters:
Name Type Description autoplay
boolean - True indicates that the media should start as soon as the page loads.
- False indicates that the media should not start as soon as the page loads.
- See:
- True indicates that the media should start as soon as the page loads.
-
setControls(val)
-
Set controls attribute for the HTML5 media Element.
Parameters:
Name Type Description val
string Value to set the controls attribute to
-
setCurrentTime(seconds)
-
Set current time for the
HTML5
tech.Parameters:
Name Type Description seconds
number Set the current time of the media to this.
- Overrides:
-
setDefaultMuted(defaultMuted)
-
Set the value of
defaultMuted
on the media element.defaultMuted
indicates that the current audio level should be silent, but will only effect the muted level on intial playback..Parameters:
Name Type Description defaultMuted
boolean - True if the audio should be set to silent
- False otherwise
- See:
- True if the audio should be set to silent
-
setDefaultPlaybackRate() → {number}
-
Set the value of
defaultPlaybackRate
on the media element.defaultPlaybackRate
indicates the rate at which the media should play back upon initial startup. Changing this value after a video has started will do nothing. Instead you should used Html5#setPlaybackRate.Example Values:
- if playbackRate is set to 2, media will play twice as fast.
- if playbackRate is set to 0.5, media will play half as fast.
Returns:
number -The value of
defaultPlaybackRate
from the media element. A number indicating the current playback speed of the media, where 1 is normal speed.- See:
-
setLoop(loop)
-
Set the value of
loop
on the media element.loop
indicates that the media should return to the start of the media and continue playing once it reaches the end.Parameters:
Name Type Description loop
boolean - True indicates that playback should seek back to start once
the end of a media is reached. - False indicates that playback should not loop back to the start when the end of the media is reached.
- See:
- True indicates that playback should seek back to start once
-
setMuted(muted)
-
Set the value of
muted
on the media element.muted
indicates that the current audio level should be silent.Parameters:
Name Type Description muted
boolean - True if the audio should be set to silent
- False otherwise
- See:
- True if the audio should be set to silent
-
setPlaybackRate() → {number}
-
Set the value of
playbackRate
on the media element.playbackRate
indicates the rate at which the media should play back. Examples:- if playbackRate is set to 2, media will play twice as fast.
- if playbackRate is set to 0.5, media will play half as fast.
Returns:
number -The value of
playbackRate
from the media element. A number indicating the current playback speed of the media, where 1 is normal speed.- See:
-
setPlaysinline(playsinline)
-
Set the value of
playsinline
from the media element.playsinline
indicates to the browser that non-fullscreen playback is preferred when fullscreen playback is the native default, such as in iOS Safari.Parameters:
Name Type Description playsinline
boolean - True indicates that the media should play inline.
- False indicates that the media should not play inline.
- Overrides:
- See:
- True indicates that the media should play inline.
-
setPoster(poster)
-
Set the value of
poster
on the media element.poster
is the url to an image file that can/will be shown when no media data is available.Parameters:
Name Type Description poster
string The url to an image that should be used as the
poster
for the media element.- Overrides:
- See:
-
setPreload(preload)
-
Set the value of
preload
on the media element.preload
indicates what should download before the media is interacted with. It can have the following values:- none: nothing should be downloaded
- metadata: poster and the first few frames of the media may be downloaded to get media dimensions and other metadata
- auto: allow the media and metadata for the media to be downloaded before interaction
Parameters:
Name Type Description preload
string The value of
preload
to set on the media element. Must be 'none', 'metadata', or 'auto'.- See:
-
setSrc(src)
-
Set the value of
src
on the media element.src
indicates the current Tech~SourceObject for the media.Parameters:
Name Type Description src
Tech~SourceObject The source object to set as the current source.
- See:
-
setVolume(percentAsDecimal)
-
Set the value of
volume
on the media element.volume
indicates the current audio level as a percentage in decimal form. This means that 1 is 100%, 0.5 is 50%, and so on.Parameters:
Name Type Description percentAsDecimal
number The volume percent as a decimal. Valid range is from 0-1.
- See:
-
[Spec]Spec
-
src(srcopt) → {Tech~SourceObject|undefined}
-
A getter/setter for the
Html5
Tech's source object.Note: Please use Html5#setSource
Parameters:
Name Type Attributes Description src
Tech~SourceObject <optional>
The source object you want to set on the
HTML5
techs element.Returns:
Tech~SourceObject | undefined -- The current source object when a source is not passed in.
- undefined when setting
- Deprecated:
- Since version 5.
- The current source object when a source is not passed in.
-
stopTrackingCurrentTime()
-
Stop the interval function created in Tech#trackCurrentTime so that the
timeupdate
event is no longer triggered.Listens to Events:
- {Tech#event:pause}
- Inherited From:
-
stopTrackingProgress()
-
Turn off the polyfill for
progress
events that was created in Tech#manualProgressOn Stop manually tracking progress events by clearing the interval that was set in Tech#trackProgress.- Inherited From:
-
supportsFullScreen() → {boolean}
-
Check if fullscreen is supported on the current playback device.
Returns:
boolean -- True if fullscreen is supported.
- False if fullscreen is not supported.
- True if fullscreen is supported.
-
textTracks() → {TextTrackList}
-
Get the TextTrackList
Returns:
TextTrackList- Inherited From:
-
trackCurrentTime()
-
Sets up an interval function to track current time and trigger
timeupdate
every 250 milliseconds.Listens to Events:
- Tech#event:play
- Inherited From:
-
trackProgress(event)
-
This is used to trigger a
progress
event when the buffered percent changes. It sets an interval function that will be called every 500 milliseconds to check if the buffer end percent has changed.This function is called by Tech#manualProgressOn
Parameters:
Name Type Description event
EventTarget~Event The
ready
event that caused this to run.Fires:
Listens to Events:
- Inherited From:
-
videoHeight() → {number}
-
Get the value of
videoHeight
from the video element.videoHeigth
indicates the current height of the video in css pixels.Returns:
number -The value of
videoHeight
from the video element. This will be a number in css pixels. -
videoTracks() → {VideoTrackList}
-
Get the VideoTrackList
Returns:
VideoTrackList- Inherited From:
-
videoWidth() → {number}
-
Get the value of
videoWidth
from the video element.videoWidth
indicates the current width of the video in css pixels.Returns:
number -The value of
videoWidth
from the video element. This will be a number in css pixels. -
volume() → {number}
-
Get the value of
volume
from the media element.volume
indicates the current playback volume of audio for a media.volume
will be a value from 0 (silent) to 1 (loudest and default).Returns:
number -The value of
volume
from the media element. Value will be between 0-1.- See:
-
[Spec]Spec
-
width() → {number}
-
Get the current width of the HTML5 media element.
Returns:
number -The width of the HTML5 media element.
-
static canControlPlaybackRate() → {boolean}
-
Check if the playback rate can be changed in this browser/device.
Returns:
boolean -- True if playback rate can be controlled
- False otherwise
- True if playback rate can be controlled
-
static canControlVolume() → {boolean}
-
Check if the volume can be changed in this browser/device. Volume cannot be changed in a lot of mobile devices. Specifically, it can't be changed from 1 on iOS.
Returns:
boolean -- True if volume can be controlled
- False otherwise
- True if volume can be controlled
-
static canPlaySource(srcObj, options) → {string}
-
Check if the tech can support the given source
Parameters:
Name Type Description srcObj
Object The source object
options
Object The options passed to the tech
Returns:
string -'probably', 'maybe', or '' (empty string)
-
static canPlayType(type) → {string}
-
Check if the tech can support the given type
Parameters:
Name Type Description type
string The mimetype to check
Returns:
string -'probably', 'maybe', or '' (empty string)
-
static isSupported() → {boolean}
-
Check if HTML5 media is supported by this browser/device.
Returns:
boolean -- True if HTML5 media is supported.
- False if HTML5 media is not supported.
- True if HTML5 media is supported.
-
static supportsNativeAudioTracks() → {boolean}
-
Check to see if native
AudioTrack
s are supported by this browser/deviceReturns:
boolean -- True if native
AudioTrack
s are supported.- False otherwise
- True if native
-
static supportsNativeTextTracks() → {boolean}
-
Check to see if native
TextTrack
s are supported by this browser/device.Returns:
boolean -- True if native
TextTrack
s are supported.- False otherwise
- True if native
-
static supportsNativeVideoTracks() → {boolean}
-
Check to see if native
VideoTrack
s are supported by this browser/deviceReturns:
boolean -- True if native
VideoTrack
s are supported.- False otherwise
- True if native
Events
-
audiotrackchange
-
Triggered when tracks are added or removed on the Tech AudioTrackList
Type:
- Inherited From:
-
progress
-
See Player#progress
Type:
- Inherited From:
-
texttrackchange
-
Triggered when tracks are added or removed on the Tech TextTrackList
Type:
- Inherited From:
-
timeupdate
-
Trigger timeupdate because we're done seeking and the time has changed. This is particularly useful for if the player is paused to time the time displays.
Type:
- Overrides:
-
videotrackchange
-
Triggered when tracks are added or removed on the Tech VideoTrackList
Type:
- Inherited From:
-
vttjsloaded
-
Fired when vtt.js is loaded.
Type:
- Overrides: