Class: Html5

Html5

HTML5 Media Controller - Wrapper for HTML5 Media API


new Html5( [options], ready)

Create an instance of this Tech.

Parameters:
Name Type Argument Description
options Object <optional>

The key/value store of player options.

ready Component~ReadyCallback

Callback function to call when the HTML5 Tech is ready.

Mixes In:
  • Tech~SouceHandlerAdditions
Source:
tech/html5.js

Extends

Members


featuresFullscreenResize :boolean

Boolean indicating whether the HTML5 tech currently supports automatic media resize when going into fullscreen.

Type:
  • boolean
Overrides:
Default Value:
  • true
Source:
tech/html5.js

featuresNativeAudioTracks :boolean

Boolean indicating whether the HTML5 tech currently supports native AudioTracks.

Type:
  • boolean
Default Value:
Source:
tech/html5.js

featuresNativeTextTracks :boolean

Boolean indicating whether the HTML5 tech currently supports native TextTracks.

Type:
  • boolean
Overrides:
Default Value:
Source:
tech/html5.js

featuresNativeVideoTracks :boolean

Boolean indicating whether the HTML5 tech currently supports native VideoTracks.

Type:
  • boolean
Default Value:
Source:
tech/html5.js

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
Type:
  • boolean
Overrides:
Default Value:
Source:
tech/html5.js

featuresProgressEvents :boolean

Boolean indicating whether the HTML5 tech currently supports the progress event. If this is false, manual progress events will be triggred instead.

Type:
  • boolean
Overrides:
Default Value:
  • true
Source:
tech/html5.js

featuresTimeupdateEvents

Boolean indicating whether the HTML5 tech currently supports the timeupdate event. If this is false, manual timeupdate events will be triggred instead.

Overrides:
Default Value:
  • true
Source:
tech/html5.js

featuresVolumeControl :boolean

Boolean indicating whether the Tech supports volume control.

Type:
  • boolean
Overrides:
Default Value:
Source:
tech/html5.js

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.

Type:
  • boolean
Source:
tech/html5.js

<static> nativeSourceHandler

Native source handler for Html5, simply passes the source to the media element.

Source:
tech/html5.js

Methods


addRemoteTextTrack(options [, manualCleanup])

Creates a remote text track object and returns an html track element.

Parameters:
Name Type Argument 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

Overrides:
Deprecated:
  • The default value of the "manualCleanup" parameter will default to "false" in upcoming versions of Video.js
Source:
tech/html5.js
Returns:

An Html Track Element. This can be an emulated HTMLTrackElement or a native one.

Type
HTMLTrackElement

addTextTrack(kind [, label] [, language])

Create and returns a remote TextTrack object.

Parameters:
Name Type Argument 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:
Source:
tech/html5.js
Returns:

The TextTrack that gets created.

Type
TextTrack

addWebVttScript_()

Emulate TextTracks using vtt.js if necessary

Inherited From:
Source:
tech/tech.js
Fires:

audioTracks()

Get the Techs AudioTrackList.

Inherited From:
Source:
tech/tech.js
Returns:

The audio track list that the Tech is currently using.

Type
AudioTrackList

autoplay()

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.

Source:
tech/html5.js
See:
Returns:
  • 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.
Type
boolean

buffered()

Get the value of buffered from the media element. buffered is a TimeRange object that represents the parts of the media that are already downloaded and available for playback.

Overrides:
Source:
tech/html5.js
See:
Returns:

The value of buffered from the media element.

Type
TimeRange

bufferedPercent()

Get the percentage of the current video that is currently buffered.

Inherited From:
Source:
tech/tech.js
Returns:

A number from 0 to 1 that represents the decimal percentage of the video that is buffered.

Type
number

cleanupAutoTextTracks()

Remove any TextTracks added via addRemoteTextTrack that are flagged for automatic garbage collection

Inherited From:
Source:
tech/tech.js

clearTracks(types)

Clear out a single TrackList or an array of TrackLists 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, and text.

Inherited From:
Source:
tech/tech.js

controls()

Get the value of controls from the media element. controls indicates whether the native media controls should be shown or hidden.

Source:
tech/html5.js
See:
Returns:
  • The value of controls from the media element.
      - True indicates that native controls should be showing.
      - False indicates that native controls should be hidden.
Type
boolean

createEl()

Create the Html5 Tech's DOM element.

Source:
tech/html5.js
Returns:

The element that gets created.

Type
Element

createRemoteTextTrack(options)

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 Argument 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:
Source:
tech/html5.js
Returns:

The track element that gets created.

Type
HTMLTrackElement

currentSrc()

Get the current source on the HTML5 Tech. Falls back to returning the source from the HTML5 media element.

Source:
tech/html5.js
Returns:

The current source object from the HTML5 tech. With a fallback to the elements source.

Type
Tech~SourceObject

currentTime()

Get the value of currentTime from the media element. currentTime indicates the current second that the media is at in playback.

Source:
tech/html5.js
See:
Returns:

The value of currentTime from the media element.

Type
number

defaultMuted()

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 and defaultMuted can have different values. muted indicates the current state.

Source:
tech/html5.js
See:
Returns:
  • 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
Type
boolean

dispose()

Dispose of HTML5 media element and remove all tracks.

Overrides:
Source:
tech/html5.js

duration()

Get the current duration of the HTML5 media element.

Source:
tech/html5.js
Returns:

The duration of the media or 0 if there is no duration.

Type
number

ended()

Get the value of ended from the media element. ended indicates whether the media has reached the end or not.

Source:
tech/html5.js
See:
Returns:
  • The value of ended from the media element.
      - True indicates that the media has ended.
      - False indicates that the media has not ended.
Type
boolean

enterFullScreen()

Request that the HTML5 Tech enter fullscreen.

Source:
tech/html5.js

error()

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.

Overrides:
Source:
tech/html5.js
See:
Returns:

The value of error from the media element. Will be MediaError if there is a current error and null otherwise.

Type
MediaError | null

exitFullScreen()

Request that the HTML5 Tech exit fullscreen.

Source:
tech/html5.js

getVideoPlaybackQuality()

Gets available media playback quality metrics as specified by the W3C's Media Playback Quality API.

Overrides:
Source:
tech/html5.js
See:
Returns:

An object with supported media playback quality metrics

Type
Object

handleLateInit_()

This will be triggered if the loadstart event has already fired, before videojs was ready. Two known examples of when this can happen are:

  1. If we're loading the playback object after it has started loading
  2. The media is already playing the (often with autoplay on) then

This function will fire another loadstart so that videojs can catchup.

Source:
tech/html5.js
Fires:
  • Tech#event:loadstart
Returns:

returns nothing.

Type
undefined

handleTextTrackAdd(e)

Handle any TextTrackList addtrack event.

Parameters:
Name Type Description
e EventTarget~Event

The addtrack event that caused this to run.

Source:
tech/html5.js
Listens to Events:

handleTextTrackChange(e)

Handle any TextTrackList change event.

Parameters:
Name Type Description
e EventTarget~Event

The change event that caused this to run.

Source:
tech/html5.js
Listens to Events:

handleTextTrackRemove(e)

Handle any TextTrackList removetrack event.

Parameters:
Name Type Description
e EventTarget~Event

The removetrack event that caused this to run.

Source:
tech/html5.js
Listens to Events:

height()

Get the current height of the HTML5 media element.

Source:
tech/html5.js
Returns:

The heigth of the HTML5 media element.

Type
number

initTextTrackListeners()

Turn on listeners for TextTrackList events. This adds EventTarget~EventListeners for texttrackchange, addtrack and removetrack.

Inherited From:
Source:
tech/tech.js
Fires:

initTrackListeners()

Turn on listeners for VideoTrackList and {AudioTrackList events. This adds EventTarget~EventListeners for addtrack, and removetrack.

Inherited From:
Source:
tech/tech.js
Fires:

load()

A wrapper around the media elements load function. This will call the HTML5s media element load function.

Source:
tech/html5.js
See:

loop()

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.

Source:
tech/html5.js
See:
Returns:
  • 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.
Type
boolean

manualProgressOff()

Turn off the polyfill for progress events that was created in Tech#manualProgressOn

Inherited From:
Source:
tech/tech.js

manualProgressOn()

Polyfill the progress event for browsers that don't support it natively.

Inherited From:
Source:
tech/tech.js
See:

manualTimeUpdatesOff()

Turn off the polyfill for timeupdate events that was created in Tech#manualTimeUpdatesOn

Inherited From:
Source:
tech/tech.js

manualTimeUpdatesOn()

Polyfill the timeupdate event for browsers that don't support it.

Inherited From:
Source:
tech/tech.js
See:

muted()

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 the volume attribute.

Source:
tech/html5.js
See:
Returns:
  • True if the value of volume should be ignored and the audio set to silent.
      - False if the value of `volume` should be used.
Type
boolean

networkState()

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
Source:
tech/html5.js
See:
Returns:

The value of networkState from the media element. This will be a number from the list in the description.

Type
number

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.

Inherited From:
Source:
tech/tech.js
Listens to Events:
  • Tech#event:durationchange

pause()

A wrapper around the media elements pause function. This will call the HTML5 media elements pause function.

Source:
tech/html5.js
See:

paused()

Get the value of paused from the media element. paused indicates whether the media element is currently paused or not.

Source:
tech/html5.js
See:
Returns:

The value of paused from the media element.

Type
boolean

play()

Called by Player#play to play using the Html5 Tech.

Source:
tech/html5.js

playbackRate()

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.
Source:
tech/html5.js
See:
Returns:

The value of playbackRate from the media element. A number indicating the current playback speed of the media, where 1 is normal speed.

Type
number

played()

Get the value of played from the media element. played returns a TimeRange object representing points in the media timeline that have been played.

Overrides:
Source:
tech/html5.js
See:
Returns:

The value of played from the media element. A TimeRange object indicating the ranges of time that have been played.

Type
TimeRange

playsinline()

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.

Overrides:
Source:
tech/html5.js
See:
Returns:
  • 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.
Type
boolean

poster()

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.

Source:
tech/html5.js
See:
Returns:

The value of poster from the media element. Value will be a url to an image.

Type
string

preload()

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
Source:
tech/html5.js
See:
Returns:

The value of preload from the media element. Will be 'none', 'metadata', or 'auto'.

Type
string

proxyNativeTextTracks_()

Add event listeners to native text track events. This adds the native text tracks to our emulated TextTrackList.

Source:
tech/html5.js

readyState()

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
Source:
tech/html5.js
See:
Returns:

The value of readyState from the media element. This will be a number from the list in the description.

Type
number

remoteTextTrackEls()

Get The Techs {HTMLTrackElementList}, which are the elements in the DOM that are being used as TextTracks.

Inherited From:
Source:
tech/tech.js
Returns:

The current HTML track elements that exist for the tech.

Type
HTMLTrackElementList

remoteTextTracks()

Get the Techs remote TextTrackList, which is created from elements that were added to the DOM.

Inherited From:
Source:
tech/tech.js
Returns:

The remote text track list that the Tech is currently using.

Type
TextTrackList

removeOldTextTracks_()

Remove TextTracks that dont exist in the native track list from our emulated TextTrackList.

Source:
tech/html5.js
Listens to Events:
  • Tech#event:loadstart

removeRemoteTextTrack(track)

Remove remote TextTrack from TextTrackList object

Parameters:
Name Type Description
track TextTrack

TextTrack object to remove

Overrides:
Source:
tech/html5.js

reset()

Reset the tech by removing all sources and then calling Html5.resetMediaElement.

Overrides:
Source:
tech/html5.js

seekable()

Get the value of seekable from the media element. seekable returns a TimeRange object indicating ranges of time that can currently be seeked to.

Source:
tech/html5.js
See:
Returns:

The value of seekable from the media element. A TimeRange object indicating the current ranges of time that can be seeked to.

Type
TimeRange

seeking()

Get the value of seeking from the media element. seeking indicates whether the media is currently seeking to a new position or not.

Source:
tech/html5.js
See:
Returns:
  • 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.
Type
boolean

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.
Source:
tech/html5.js
See:

setControls(val)

Set controls attribute for the HTML5 media Element.

Parameters:
Name Type Description
val string

Value to set the controls attribute to

Source:
tech/html5.js

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:
Source:
tech/html5.js

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.
Source:
tech/html5.js
See:

setMuted(muted)

Set the value of muted on the media element. muted indicates the current audio level should be silent.

Parameters:
Name Type Description
muted boolean
  • True if the audio should be set to silent
     - False otherwise
Source:
tech/html5.js
See:

setPlaybackRate()

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.
Source:
tech/html5.js
See:
Returns:

The value of playbackRate from the media element. A number indicating the current playback speed of the media, where 1 is normal speed.

Type
number

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:
Source:
tech/html5.js
See:

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:
Source:
tech/html5.js
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'.

Source:
tech/html5.js
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.

Source:
tech/html5.js
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.

Source:
tech/html5.js
See:

src( [src])

A getter/setter for the Html5 Tech's source object.

Note: Please use Html5#setSource

Parameters:
Name Type Argument Description
src Tech~SourceObject <optional>

The source object you want to set on the HTML5 techs element.

Deprecated:
  • Since version 5.
Source:
tech/html5.js
Returns:
  • The current source object when a source is not passed in.
      - undefined when setting
Type
Tech~SourceObject | undefined

stopTrackingCurrentTime()

Stop the interval function created in Tech#trackCurrentTime so that the timeupdate event is no longer triggered.

Inherited From:
Source:
tech/tech.js
Listens to Events:
  • {Tech#event:pause}

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:
Source:
tech/tech.js

supportsFullScreen()

Check if fullscreen is supported on the current playback device.

Source:
tech/html5.js
Returns:
  • True if fullscreen is supported.
      - False if fullscreen is not supported.
Type
boolean

textTracks()

Get the Techs TextTrackList.

Inherited From:
Source:
tech/tech.js
Returns:

The text track list that the Tech is currently using.

Type
TextTrackList

trackCurrentTime()

Sets up an interval function to track current time and trigger timeupdate every 250 milliseconds.

Inherited From:
Source:
tech/tech.js
Listens to Events:
  • Tech#event:play

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.

Inherited From:
Source:
tech/tech.js
Fires:
Listens to Events:

videoHeight()

Get the value of videoHeight from the video element. videoHeigth indicates the current height of the video in css pixels.

Source:
tech/html5.js
See:
Returns:

The value of videoHeight from the video element. This will be a number in css pixels.

Type
number

videoTracks()

Get the Techs VideoTrackList.

Inherited From:
Source:
tech/tech.js
Returns:

The video track list that the Tech is currently using.

Type
VideoTrackList

videoWidth()

Get the value of videoWidth from the video element. videoWidth indicates the current width of the video in css pixels.

Source:
tech/html5.js
See:
Returns:

The value of videoWidth from the video element. This will be a number in css pixels.

Type
number

volume()

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

Source:
tech/html5.js
See:
Returns:

The value of volume from the media element. Value will be between 0-1.

Type
number

width()

Get the current width of the HTML5 media element.

Source:
tech/html5.js
Returns:

The width of the HTML5 media element.

Type
number

<static> canControlPlaybackRate()

Check if the playback rate can be changed in this browser/device.

Source:
tech/html5.js
Returns:
  • True if playback rate can be controlled
      - False otherwise
Type
boolean

<static> canControlVolume()

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.

Source:
tech/html5.js
Returns:
  • True if volume can be controlled
      - False otherwise
Type
boolean

<static> isSupported()

Check if HTML5 media is supported by this browser/device.

Source:
tech/html5.js
Returns:
  • True if HTML5 media is supported.
      - False if HTML5 media is not supported.
Type
boolean

<static> supportsNativeAudioTracks()

Check to see if native AudioTracks are supported by this browser/device

Source:
tech/html5.js
Returns:
  • True if native AudioTracks are supported.
     - False otherwise
Type
boolean

<static> supportsNativeTextTracks()

Check to see if native TextTracks are supported by this browser/device.

Source:
tech/html5.js
Returns:
  • True if native TextTracks are supported.
      - False otherwise
Type
boolean

<static> supportsNativeVideoTracks()

Check to see if native VideoTracks are supported by this browser/device

Source:
tech/html5.js
Returns:
  • True if native VideoTracks are supported.
     - False otherwise
Type
boolean

Events


audiotrackchange

Triggered when tracks are added or removed on the Tech AudioTrackList

Type: EventTarget~Event
Inherited From:
Source:
tech/tech.js

progress

See Player#progress

Type: EventTarget~Event
Inherited From:
Source:
tech/tech.js

texttrackchange

Triggered when tracks are added or removed on the Tech TextTrackList

Type: EventTarget~Event
Inherited From:
Source:
tech/tech.js

timeupdate

Triggered at an interval of 250ms to indicated that time is passing in the video.

Type: EventTarget~Event
Inherited From:
Overrides:
Source:
tech/tech.js

videotrackchange

Triggered when tracks are added or removed on the Tech VideoTrackList

Type: EventTarget~Event
Inherited From:
Source:
tech/tech.js

vttjsloaded

Fired when vtt.js is loaded.

Type: EventTarget~Event
Inherited From:
Overrides:
Source:
tech/tech.js