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
HTML5tech currently supports automatic media resize when going into fullscreen.- Overrides:
- Default Value:
- true
-
featuresNativeAudioTracks :boolean
-
Boolean indicating whether the
HTML5tech currently supports nativeAudioTracks.- Default Value:
-
featuresNativeTextTracks :boolean
-
Boolean indicating whether the
HTML5tech currently supports nativeTextTracks.- Overrides:
- Default Value:
-
featuresNativeVideoTracks :boolean
-
Boolean indicating whether the
HTML5tech currently supports nativeVideoTracks.- Default Value:
-
featuresPlaybackRate :boolean
-
Boolean indicating whether the
Techsupports 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
HTML5tech currently supports the progress event. If this is false, manualprogressevents will be triggred instead.- Overrides:
- Default Value:
- true
-
featuresTimeupdateEvents
-
Boolean indicating whether the
HTML5tech currently supports the timeupdate event. If this is false, manualtimeupdateevents will be triggred instead.- Overrides:
- Default Value:
- true
-
featuresVolumeControl :boolean
-
Boolean indicating whether the
Techsupports volume control.- Overrides:
- Default Value:
-
movingMediaElementInDOM :boolean
-
Boolean indicating whether the
HTML5tech 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 optionsObject The object should contain values for kind, language, label, and src (location of the WebVTT file)
manualCleanupBoolean <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 kindstring TextTrackkind (subtitles, captions, descriptions, chapters, or metadata)labelstring <optional>
Label to identify the text track
languagestring <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
autoplayfrom the media element.autoplayindicates that the media should start to play as soon as the page is ready.Returns:
boolean -- The value of
autoplayfrom 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
bufferedfrom the media element.bufferedis aTimeRangeobject that represents the parts of the media that are already downloaded and available for playback.Returns:
TimeRange -The value of
bufferedfrom 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
TrackListor an array ofTrackListsgiven their names.Note: Techs without source handlers should call this between sources for
video&audiotracks. You don't want to use them between tracks!Parameters:
Name Type Description typesArray.<string> | string TrackList names to clear, valid names are
video,audio, andtext.- Inherited From:
-
controls() → {boolean}
-
Get the value of
controlsfrom the media element.controlsindicates whether the native media controls should be shown or hidden.Returns:
boolean -- The value of
controlsfrom 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
Html5Tech'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
featuresNativeTextTracksParameters:
Name Type Description optionsObject The object should contain the options to intialize the TextTrack with.
Properties
Name Type Attributes Description kindstring <optional>
TextTrackkind (subtitles, captions, descriptions, chapters, or metadata).labelstring <optional>
Label to identify the text track
languagestring <optional>
Two letter language abbreviation.
defaultboolean <optional>
Default this track to on.
idstring <optional>
The internal id to assign this track.
srcstring <optional>
A source url for the track.
- Overrides:
-
currentSrc() → {Tech~SourceObject}
-
Get the current source on the
HTML5Tech. 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
currentTimefrom the media element.currentTimeindicates the current second that the media is at in playback.Returns:
number -The value of
currentTimefrom the media element.- See:
-
defaultMuted() → {boolean}
-
Get the value of
defaultMutedfrom the media element.defaultMutedindicates whether the media should start muted or not. Only changes the default state of the media.mutedanddefaultMutedcan have different values. Html5#muted indicates the current state.Returns:
boolean -- The value of
defaultMutedfrom 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
defaultPlaybackRatefrom the media element.defaultPlaybackRateindicates the rate at which the media is currently playing back. This value will not indicate the currentplaybackRateafter 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
defaultPlaybackRatefrom the media element. A number indicating the current playback speed of the media, where 1 is normal speed.- See:
-
dispose()
-
Dispose of
HTML5media 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
endedfrom the media element.endedindicates whether the media has reached the end or not.Returns:
boolean -- The value of
endedfrom 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
HTML5Tech enter fullscreen. -
error() → {MediaError|null}
-
Get the value of the
errorfrom the media element.errorindicates any MediaError that may have occured during playback. If error returns null there is no current error.Returns:
MediaError | null -The value of
errorfrom the media element. Will beMediaErrorif there is a current error and null otherwise.- Overrides:
- See:
-
exitFullScreen()
-
Request that the
HTML5Tech 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
loadfunction. This will call theHTML5s media elementloadfunction.- See:
-
loop() → {boolean}
-
Get the value of
loopfrom the media element.loopindicates that the media should return to the start of the media and continue playing once it reaches the end.Returns:
boolean -- The value of
loopfrom 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
progressevents that was created in Tech#manualProgressOn- Inherited From:
-
manualProgressOn()
-
Polyfill the
progressevent for browsers that don't support it natively.- Inherited From:
- See:
-
manualTimeUpdatesOff()
-
Turn off the polyfill for
timeupdateevents that was created in Tech#manualTimeUpdatesOn- Inherited From:
-
manualTimeUpdatesOn()
-
Polyfill the
timeupdateevent for browsers that don't support it.- Inherited From:
- See:
-
muted() → {boolean}
-
Get the value of
mutedfrom the media element.mutedindicates that the volume for the media should be set to silent. This does not actually change thevolumeattribute.Returns:
boolean -- True if the value of
volumeshould 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
networkStatefrom the media element.networkStateindicates 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
networkStatefrom the media element. This will be a number from the list in the description. -
onDurationChange(event)
-
Update our internal duration on a
durationchangeevent by calling Tech#duration.Parameters:
Name Type Description eventEventTarget~Event The
durationchangeevent that caused this to run.Listens to Events:
- Tech#event:durationchange
- Inherited From:
-
pause()
-
A wrapper around the media elements
pausefunction. This will call theHTML5media elementspausefunction.- See:
-
paused() → {boolean}
-
Get the value of
pausedfrom the media element.pausedindicates whether the media element is currently paused or not.Returns:
boolean -The value of
pausedfrom the media element.- See:
-
play()
-
A wrapper around the media elements
playfunction. This will call theHTML5s media elementplayfunction.- See:
-
playbackRate() → {number}
-
Get the value of
playbackRatefrom the media element.playbackRateindicates 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
playbackRatefrom 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
playedfrom the media element.playedreturns aTimeRangeobject representing points in the media timeline that have been played.Returns:
TimeRange -The value of
playedfrom the media element. ATimeRangeobject indicating the ranges of time that have been played.- Overrides:
- See:
-
playsinline() → {boolean}
-
Get the value of
playsinlinefrom the media element.playsinlineindicates 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
playsinlinefrom 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
posterfrom the media element.posterindicates that the url of an image file that can/will be shown when no media data is available.Returns:
string -The value of
posterfrom the media element. Value will be a url to an image.- See:
-
preload() → {string}
-
Get the value of
preloadfrom the media element.preloadindicates 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
preloadfrom the media element. Will be 'none', 'metadata', or 'auto'.- See:
-
readyState() → {number}
-
Get the value of
readyStatefrom the media element.readyStateindicates 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
readyStatefrom 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
TextTrackfromTextTrackListobjectParameters:
Name Type Description trackTextTrack TextTrackobject to remove- Overrides:
-
reset()
-
Reset the tech by removing all sources and then calling Html5.resetMediaElement.
- Overrides:
-
seekable() → {TimeRange}
-
Get the value of
seekablefrom the media element.seekablereturns aTimeRangeobject indicating ranges of time that can currently beseekedto.Returns:
TimeRange -The value of
seekablefrom the media element. ATimeRangeobject indicating the current ranges of time that can be seeked to.- See:
-
seeking() → {boolean}
-
Get the value of
seekingfrom the media element.seekingindicates whether the media is currently seeking to a new position or not.Returns:
boolean -- The value of
seekingfrom 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
autoplayon the media element.autoplayindicates that the media should start to play as soon as the page is ready.Parameters:
Name Type Description autoplayboolean - 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 valstring Value to set the controls attribute to
-
setCurrentTime(seconds)
-
Set current time for the
HTML5tech.Parameters:
Name Type Description secondsnumber Set the current time of the media to this.
- Overrides:
-
setDefaultMuted(defaultMuted)
-
Set the value of
defaultMutedon the media element.defaultMutedindicates that the current audio level should be silent, but will only effect the muted level on intial playback..Parameters:
Name Type Description defaultMutedboolean - 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
defaultPlaybackRateon the media element.defaultPlaybackRateindicates 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
defaultPlaybackRatefrom 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
loopon the media element.loopindicates that the media should return to the start of the media and continue playing once it reaches the end.Parameters:
Name Type Description loopboolean - 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
mutedon the media element.mutedindicates that the current audio level should be silent.Parameters:
Name Type Description mutedboolean - 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
playbackRateon the media element.playbackRateindicates 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
playbackRatefrom 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
playsinlinefrom the media element.playsinlineindicates 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 playsinlineboolean - 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
posteron the media element.posteris the url to an image file that can/will be shown when no media data is available.Parameters:
Name Type Description posterstring The url to an image that should be used as the
posterfor the media element.- Overrides:
- See:
-
setPreload(preload)
-
Set the value of
preloadon the media element.preloadindicates 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 preloadstring The value of
preloadto set on the media element. Must be 'none', 'metadata', or 'auto'.- See:
-
setSrc(src)
-
Set the value of
srcon the media element.srcindicates the current Tech~SourceObject for the media.Parameters:
Name Type Description srcTech~SourceObject The source object to set as the current source.
- See:
-
setVolume(percentAsDecimal)
-
Set the value of
volumeon the media element.volumeindicates 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 percentAsDecimalnumber 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
Html5Tech's source object.Note: Please use Html5#setSource
Parameters:
Name Type Attributes Description srcTech~SourceObject <optional>
The source object you want to set on the
HTML5techs 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
timeupdateevent is no longer triggered.Listens to Events:
- {Tech#event:pause}
- Inherited From:
-
stopTrackingProgress()
-
Turn off the polyfill for
progressevents 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
timeupdateevery 250 milliseconds.Listens to Events:
- Tech#event:play
- Inherited From:
-
trackProgress(event)
-
This is used to trigger a
progressevent 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 eventEventTarget~Event The
readyevent that caused this to run.Fires:
Listens to Events:
- Inherited From:
-
videoHeight() → {number}
-
Get the value of
videoHeightfrom the video element.videoHeigthindicates the current height of the video in css pixels.Returns:
number -The value of
videoHeightfrom 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
videoWidthfrom the video element.videoWidthindicates the current width of the video in css pixels.Returns:
number -The value of
videoWidthfrom the video element. This will be a number in css pixels. -
volume() → {number}
-
Get the value of
volumefrom the media element.volumeindicates the current playback volume of audio for a media.volumewill be a value from 0 (silent) to 1 (loudest and default).Returns:
number -The value of
volumefrom 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 srcObjObject The source object
optionsObject 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 typestring 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
AudioTracks are supported by this browser/deviceReturns:
boolean -- True if native
AudioTracks are supported.- False otherwise
- True if native
-
static supportsNativeTextTracks() → {boolean}
-
Check to see if native
TextTracks are supported by this browser/device.Returns:
boolean -- True if native
TextTracks are supported.- False otherwise
- True if native
-
static supportsNativeVideoTracks() → {boolean}
-
Check to see if native
VideoTracks are supported by this browser/deviceReturns:
boolean -- True if native
VideoTracks 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
-
Triggered at an interval of 250ms to indicated that time is passing in the video.
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: