## Html5

HTML5 Media Controller - Wrapper for HTML5 Media API

## Constructor

#### new Html5(optionsopt, ready)
`tech/html5.js`, `line 23`

  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 `HTML5` Tech is ready.

  Mixes In:
    - Tech~SouceHandlerAdditions

### Extends

- Tech

### Members

#### featuresFullscreenResize :boolean
`tech/html5.js`, `line 957`

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

  Overrides:
    - Tech#featuresFullscreenResize
  Default Value:
    - true

#### featuresNativeAudioTracks :boolean
`tech/html5.js`, `line 998`

  Boolean indicating whether the `HTML5` tech currently supports native `AudioTrack`s.

  Default Value:
    - Html5.supportsNativeAudioTracks

#### featuresNativeTextTracks :boolean
`tech/html5.js`, `line 982`

  Boolean indicating whether the `HTML5` tech currently supports native `TextTrack`s.

  Overrides:
    - Tech#featuresNativeTextTracks
  Default Value:
    - Html5.supportsNativeTextTracks

#### featuresNativeVideoTracks :boolean
`tech/html5.js`, `line 990`

  Boolean indicating whether the `HTML5` tech currently supports native `VideoTrack`s.

  Default Value:
    - Html5.supportsNativeVideoTracks

#### featuresPlaybackRate :boolean
`tech/html5.js`, `line 936`

  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:
    - Tech#featuresPlaybackRate
  Default Value:
    - Html5.canControlPlaybackRate

#### featuresProgressEvents :boolean
`tech/html5.js`, `line 966`

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

  Overrides:
    - Tech#featuresProgressEvents
  Default Value:
    - true

#### featuresTimeupdateEvents
`tech/html5.js`, `line 974`

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

  Overrides:
    - Tech#featuresTimeupdateEvents
  Default Value:
    - true

#### featuresVolumeControl :boolean
`tech/html5.js`, `line 925`

  Boolean indicating whether the `Tech` supports volume control.

  Overrides:
    - Tech#featuresVolumeControl
  Default Value:
    - Html5.canControlVolume

#### movingMediaElementInDOM :boolean
`tech/html5.js`, `line 946`

  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
`tech/html5.js`, `line 1639`

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

### Methods

#### addRemoteTextTrack(options, manualCleanupopt) → {HTMLTrackElement}
`tech/html5.js`, `line 644`

  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:
    - Tech#addRemoteTextTrack
  Deprecated:
    - The default value of the "manualCleanup" parameter will default to "false" in upcoming versions of Video.js

#### addTextTrack(kind, labelopt, languageopt) → {TextTrack}
`tech/html5.js`, `line 568`

  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

  ##### Returns:

  TextTrack -

  The TextTrack that gets created.

  Overrides:
    - Tech#addTextTrack

#### addWebVttScript_()
`tech/tech.js`, `line 511`

  Emulate TextTracks using vtt.js if necessary

  ##### Fires:

  - Tech#event:vttjsloaded
  - Tech#event:vttjserror
  Inherited From:
    - Tech#addWebVttScript_

#### audioTracks() → {AudioTrackList}
`tech/tech.js`, `line 893`

  Get the AudioTrackList

  ##### Returns:

  AudioTrackList
  Inherited From:
    - Tech#audioTracks

#### autoplay() → {boolean}
`tech/html5.js`, `line 1211`

  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:

    - Spec

#### buffered() → {TimeRange}
`tech/html5.js`, `line 1124`

  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.

  ##### Returns:

  TimeRange -

  The value of `buffered` from the media element.

  Overrides:
    - Tech#buffered
  See:

    - Spec

#### bufferedPercent() → {number}
`tech/tech.js`, `line 255`

  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:
    - Tech#bufferedPercent

#### cleanupAutoTextTracks()
`tech/tech.js`, `line 385`

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

  Inherited From:
    - Tech#cleanupAutoTextTracks

#### clearTracks(types)
`tech/tech.js`, `line 363`

  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:
    - Tech#clearTracks

#### controls() → {boolean}
`tech/html5.js`, `line 1225`

  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:

    - Spec

#### createEl() → {Element}
`tech/html5.js`, `line 193`

  Create the `Html5` Tech's DOM element.

  ##### Returns:

  Element -

  The element that gets created.

#### createRemoteTextTrack(options) → {HTMLTrackElement}
`tech/html5.js`, `line 604`

  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.

  ##### Returns:

  HTMLTrackElement -

  The track element that gets created.

  Overrides:
    - Tech#createRemoteTextTrack

#### currentSrc() → {Tech~SourceObject}
`tech/html5.js`, `line 536`

  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}
`tech/html5.js`, `line 1112`

  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:

    - Spec

#### defaultMuted() → {boolean}
`tech/html5.js`, `line 1164`

  Get the value of `defaultMuted` from the media element. `defaultMuted` indicates that the volume for the media should be set to silent when the video first starts. This does not actually change the `volume` attribute. After playback has started `muted` will indicate the current status of the volume and `defaultMuted` will not.

  ##### 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:

    - Spec

#### defaultMuted() → {boolean}
`tech/html5.js`, `line 1311`

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

    - Spec

#### defaultPlaybackRate() → {number}
`tech/html5.js`, `line 1342`

  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 current `playbackRate` 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:

    - Spec

#### dispose()
`tech/html5.js`, `line 111`

  Dispose of `HTML5` media element and remove all tracks.

  Overrides:
    - Tech#dispose

#### duration() → {number}
`tech/html5.js`, `line 366`

  Get the current duration of the HTML5 media element.

  ##### Returns:

  number -

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

#### emulateTextTracks()
`tech/tech.js`, `line 570`

  Emulate texttracks

  Inherited From:
    - Tech#emulateTextTracks

#### ended() → {boolean}
`tech/html5.js`, `line 1297`

  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:

    - Spec

#### enterFullScreen()
`tech/html5.js`, `line 472`

  Request that the `HTML5` Tech enter fullscreen.

#### error() → {MediaError|null}
`tech/html5.js`, `line 1256`

  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 be `MediaError` if there is a current error and null otherwise.

  Overrides:
    - Tech#error
  See:

    - Spec

#### exitFullScreen()
`tech/html5.js`, `line 494`

  Request that the `HTML5` Tech exit fullscreen.

#### getVideoPlaybackQuality() → {Object}
`tech/html5.js`, `line 722`

  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:
    - Tech#getVideoPlaybackQuality
  See:

    - Spec

#### handleLateInit_() → {undefined}
`tech/html5.js`, `line 265`

  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.

  ##### Fires:

  - Tech#event:loadstart

  ##### Returns:

  undefined -

  returns nothing.

#### height() → {number}
`tech/html5.js`, `line 411`

  Get the current height of the HTML5 media element.

  ##### Returns:

  number -

  The heigth of the HTML5 media element.

#### initTrackListeners()
`tech/tech.js`, `line 466`

  Turn on listeners for VideoTrackList, {AudioTrackList, and TextTrackList events.

  This adds EventTarget~EventListeners for `addtrack`, and `removetrack`.

  ##### Fires:

  - Tech#event:audiotrackchange
  - Tech#event:videotrackchange
  - Tech#event:texttrackchange
  Inherited From:
    - Tech#initTrackListeners

#### load()
`tech/html5.js`, `line 1605`

  A wrapper around the media elements `load` function. This will call the `HTML5`s media element `load` function.

  See:

    - Spec

#### loop() → {boolean}
`tech/html5.js`, `line 1239`

  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:

    - Spec

#### manualProgressOff()
`tech/tech.js`, `line 179`

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

  Inherited From:
    - Tech#manualProgressOff

#### manualProgressOn()
`tech/tech.js`, `line 166`

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

  Inherited From:
    - Tech#manualProgressOn
  See:
    - Tech#trackProgress

#### manualTimeUpdatesOff()
`tech/tech.js`, `line 285`

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

  Inherited From:
    - Tech#manualTimeUpdatesOff

#### manualTimeUpdatesOn()
`tech/tech.js`, `line 274`

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

  Inherited From:
    - Tech#manualTimeUpdatesOn
  See:
    - Tech#trackCurrentTime

#### muted() → {boolean}
`tech/html5.js`, `line 1150`

  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.

  ##### 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:

    - Spec

#### networkState() → {number}
`tech/html5.js`, `line 1373`

  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.

  See:

    - https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-networkstate

#### onDurationChange(event)
`tech/tech.js`, `line 233`

  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:
    - Tech#onDurationChange

#### pause()
`tech/html5.js`, `line 1596`

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

  See:

    - Spec

#### paused() → {boolean}
`tech/html5.js`, `line 1100`

  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:

    - Spec

#### play()
`tech/html5.js`, `line 1614`

  A wrapper around the media elements `play` function. This will call the `HTML5`s media element `play` function.

  See:

    - Spec

#### playbackRate() → {number}
`tech/html5.js`, `line 1327`

  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:

    - Spec

#### played() → {TimeRange}
`tech/html5.js`, `line 1360`

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

  ##### Returns:

  TimeRange -

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

  Overrides:
    - Tech#played
  See:

    - Spec

#### playsinline() → {boolean}
`tech/html5.js`, `line 676`

  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:
    - Tech#playsinline
  See:

    - Spec

#### poster() → {string}
`tech/html5.js`, `line 1179`

  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:

    - Spec

#### preload() → {string}
`tech/html5.js`, `line 1192`

  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:

    - Spec

#### readyState() → {number}
`tech/html5.js`, `line 1390`

  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.

  See:

    - https://www.w3.org/TR/html5/embedded-content-0.html#ready-states

#### remoteTextTrackEls() → {HtmlTrackElementList}
`tech/tech.js`, `line 914`

  Get the remote element HtmlTrackElementList

  ##### Returns:

  HtmlTrackElementList
  Inherited From:
    - Tech#remoteTextTrackEls

#### remoteTextTracks() → {TextTrackList}
`tech/tech.js`, `line 907`

  Get the remote element TextTrackList

  ##### Returns:

  TextTrackList
  Inherited From:
    - Tech#remoteTextTracks

#### removeRemoteTextTrack(track)
`tech/html5.js`, `line 660`

  Remove remote `TextTrack` from `TextTrackList` object

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `track` | TextTrack | `TextTrack` object to remove

  Overrides:
    - Tech#removeRemoteTextTrack

#### reset()
`tech/html5.js`, `line 524`

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

  Overrides:
    - Tech#reset

#### seekable() → {TimeRange}
`tech/html5.js`, `line 1284`

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

  ##### Returns:

  TimeRange -

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

  See:

    - Spec

#### seeking() → {boolean}
`tech/html5.js`, `line 1270`

  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:

    - Spec

#### setAutoplay(autoplay)
`tech/html5.js`, `line 1526`

  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:

    - Spec

#### setControls(val)
`tech/html5.js`, `line 549`

  Set controls attribute for the HTML5 media Element.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | string | Value to set the controls attribute to

#### setCurrentTime(seconds)
`tech/html5.js`, `line 351`

  Set current time for the `HTML5` tech.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `seconds` | number | Set the current time of the media to this.

  Overrides:
    - Tech#setCurrentTime

#### setDefaultMuted(defaultMuted)
`tech/html5.js`, `line 1469`

  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:

    - Spec

#### setDefaultPlaybackRate() → {number}
`tech/html5.js`, `line 1570`

  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:

    - Spec

#### setLoop(loop)
`tech/html5.js`, `line 1539`

  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:

    - Spec

#### setMuted(muted)
`tech/html5.js`, `line 1456`

  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:

    - Spec

#### setPlaybackRate() → {number}
`tech/html5.js`, `line 1555`

  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:

    - Spec

#### setPlaysinline(playsinline)
`tech/html5.js`, `line 693`

  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:
    - Tech#setPlaysinline
  See:

    - Spec

#### setPoster(poster)
`tech/html5.js`, `line 1494`

  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:
    - Tech#setPoster
  See:

    - Spec

#### setPreload(preload)
`tech/html5.js`, `line 1507`

  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:

    - Spec

#### setSrc(src)
`tech/html5.js`, `line 1482`

  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:

    - Spec

#### setVolume(percentAsDecimal)
`tech/html5.js`, `line 1443`

  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}
`tech/html5.js`, `line 511`

  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.

#### stopTrackingCurrentTime()
`tech/tech.js`, `line 322`

  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:
    - Tech#stopTrackingCurrentTime

#### stopTrackingProgress()
`tech/tech.js`, `line 265`

  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:
    - Tech#stopTrackingProgress

#### supportsFullScreen() → {boolean}
`tech/html5.js`, `line 457`

  Check if fullscreen is supported on the current playback device.

  ##### Returns:

  boolean -
  - True if fullscreen is supported.

          - False if fullscreen is not supported.

#### textTracks() → {TextTrackList}
`tech/tech.js`, `line 900`

  Get the TextTrackList

  ##### Returns:

  TextTrackList
  Inherited From:
    - Tech#textTracks

#### trackCurrentTime()
`tech/tech.js`, `line 299`

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

  ##### Listens to Events:

  - Tech#event:play
  Inherited From:
    - Tech#trackCurrentTime

#### trackProgress(event)
`tech/tech.js`, `line 199`

  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:

  - Tech#event:progress

  ##### Listens to Events:

  - Tech#event:ready
  Inherited From:
    - Tech#trackProgress

#### videoHeight() → {number}
`tech/html5.js`, `line 1422`

  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.

  See:

    - [Spec] https://www.w3.org/TR/html5/embedded-content-0.html#dom-video-videowidth

#### videoTracks() → {VideoTrackList}
`tech/tech.js`, `line 886`

  Get the VideoTrackList

  ##### Returns:

  VideoTrackList
  Inherited From:
    - Tech#videoTracks

#### videoWidth() → {number}
`tech/html5.js`, `line 1409`

  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.

  See:

    - [Spec] https://www.w3.org/TR/html5/embedded-content-0.html#dom-video-videowidth

#### volume() → {number}
`tech/html5.js`, `line 1137`

  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}
`tech/html5.js`, `line 401`

  Get the current width of the HTML5 media element.

  ##### Returns:

  number -

  The width of the HTML5 media element.

#### static canControlPlaybackRate() → {boolean}
`tech/html5.js`, `line 837`

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

  ##### Returns:

  boolean -
  - True if playback rate can be controlled

          - False otherwise

#### static canControlVolume() → {boolean}
`tech/html5.js`, `line 818`

  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

#### static canPlaySource(srcObj, options) → {string}
`tech/html5.js`, `line 805`

  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}
`tech/html5.js`, `line 793`

  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}
`tech/html5.js`, `line 775`

  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.

#### static supportsNativeAudioTracks() → {boolean}
`tech/html5.js`, `line 883`

  Check to see if native `AudioTrack`s are supported by this browser/device

  ##### Returns:

  boolean -
  - True if native `AudioTrack`s are supported.

         - False otherwise

#### static supportsNativeTextTracks() → {boolean}
`tech/html5.js`, `line 861`

  Check to see if native `TextTrack`s are supported by this browser/device.

  ##### Returns:

  boolean -
  - True if native `TextTrack`s are supported.

          - False otherwise

#### static supportsNativeVideoTracks() → {boolean}
`tech/html5.js`, `line 872`

  Check to see if native `VideoTrack`s are supported by this browser/device

  ##### Returns:

  boolean -
  - True if native `VideoTrack`s are supported.

         - False otherwise

### Events

#### audiotrackchange
`tech/tech.js`, `line 467`

  Triggered when tracks are added or removed on the Tech AudioTrackList

  ##### Type:

  - EventTarget~Event
  Inherited From:
    - Tech#event:audiotrackchange

#### progress
`tech/tech.js`, `line 207`

  See Player#progress

  ##### Type:

  - EventTarget~Event
  Inherited From:
    - Tech#event:progress

#### texttrackchange
`tech/tech.js`, `line 481`

  Triggered when tracks are added or removed on the Tech TextTrackList

  ##### Type:

  - EventTarget~Event
  Inherited From:
    - Tech#event:texttrackchange

#### timeupdate
`tech/tech.js`, `line 304`

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

  ##### Type:

  - EventTarget~Event
  Overrides:
    - Tech#event:timeupdate

#### videotrackchange
`tech/tech.js`, `line 474`

  Triggered when tracks are added or removed on the Tech VideoTrackList

  ##### Type:

  - EventTarget~Event
  Inherited From:
    - Tech#event:videotrackchange

#### vttjsloaded
`tech/tech.js`, `line 535`

  Fired when vtt.js is loaded.

  ##### Type:

  - EventTarget~Event
  Overrides:
    - Tech#event:vttjsloaded