new VideoTrackList(tracksopt)

[tracks/video-track-list.js](https://docs.videojs.com/tracks_video-track-list.js.html), [line 33](https://docs.videojs.com/tracks_video-track-list.js.html#line33)

Create an instance of this class.

Parameters:
NameTypeAttributesDefaultDescription
tracksArray.<VideoTrack><optional>
[]

A list of VideoTrack to instantiate the list with.

See:

Extends

Members

length :number

[tracks/track-list.js](https://docs.videojs.com/tracks_track-list.js.html), [line 27](https://docs.videojs.com/tracks_track-list.js.html#line27)

The current number of Tracks in the this Trackist.

selectedIndex :number

[tracks/video-track-list.js](https://docs.videojs.com/tracks_video-track-list.js.html), [line 54](https://docs.videojs.com/tracks_video-track-list.js.html#line54)

The current index of the selected VideoTrack`.

Methods

addEventListener()

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 75](https://docs.videojs.com/event-target.js.html#line75)

An alias of EventTarget#on. Allows EventTarget to mimic the standard DOM API.

addTrack(track)

[tracks/video-track-list.js](https://docs.videojs.com/tracks_video-track-list.js.html), [line 79](https://docs.videojs.com/tracks_video-track-list.js.html#line79)

Add a VideoTrack to the VideoTrackList.

Parameters:
NameTypeDescription
trackVideoTrack

The VideoTrack to add to the list

Fires:

dispatchEvent()

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 175](https://docs.videojs.com/event-target.js.html#line175)

An alias of EventTarget#trigger. Allows EventTarget to mimic the standard DOM API.

off(type, fn)

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 88](https://docs.videojs.com/event-target.js.html#line88)

Removes an event listener for a specific event from an instance of EventTarget. This makes it so that the event listener will no longer get called when the named event happens.

Parameters:
NameTypeDescription
typestring | Array.<string>

An event name or an array of event names.

fnEventTarget~EventListener

The function to remove.

on(type, fn)

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 58](https://docs.videojs.com/event-target.js.html#line58)

Adds an event listener to an instance of an EventTarget. An event listener is a function that will get called when an event with a certain name gets triggered.

Parameters:
NameTypeDescription
typestring | Array.<string>

An event name or an array of event names.

fnEventTarget~EventListener

The function to call with EventTargets

one(type, fn)

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 112](https://docs.videojs.com/event-target.js.html#line112)

This function will add an event listener that gets triggered only once. After the first trigger it will get removed. This is like adding an event listener with EventTarget#on that calls EventTarget#off on itself.

Parameters:
NameTypeDescription
typestring | Array.<string>

An event name or an array of event names.

fnEventTarget~EventListener

The function to be called once for each event name.

removeEventListener()

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 99](https://docs.videojs.com/event-target.js.html#line99)

An alias of EventTarget#off. Allows EventTarget to mimic the standard DOM API.

removeTrack(rtrack)

[tracks/track-list.js](https://docs.videojs.com/tracks_track-list.js.html), [line 110](https://docs.videojs.com/tracks_track-list.js.html#line110)

Remove a Track from the TrackList

Parameters:
NameTypeDescription
rtrackTrack

The audio, video, or text track to remove from the list.

Fires:

trigger(event)

[event-target.js](https://docs.videojs.com/event-target.js.html), [line 148](https://docs.videojs.com/event-target.js.html#line148)

This function causes an event to happen. This will then cause any event listeners that are waiting for that event, to get called. If there are no event listeners for an event then nothing will happen.

If the name of the Event that is being triggered is in EventTarget.allowedEvents_. Trigger will also call the on + uppercaseEventName function.

Example: ‘click’ is in EventTarget.allowedEvents_, so, trigger will attempt to call onClick if it exists.

Parameters:
NameTypeDescription
eventstring | EventTarget~Event | Object

The name of the event, an Event, or an object with a key of type set to an event name.

Events

addtrack

[tracks/track-list.js](https://docs.videojs.com/tracks_track-list.js.html), [line 66](https://docs.videojs.com/tracks_track-list.js.html#line66)

Triggered when a track is added to a track list.

Type:
Properties:
NameTypeDescription
trackTrack

A reference to track that was added.

change

[tracks/track-list.js](https://docs.videojs.com/tracks_track-list.js.html), [line 169](https://docs.videojs.com/tracks_track-list.js.html#line169)

Triggered when a different track is selected/enabled.

Type:

removetrack

[tracks/track-list.js](https://docs.videojs.com/tracks_track-list.js.html), [line 130](https://docs.videojs.com/tracks_track-list.js.html#line130)

Triggered when a track is removed from track list.

Type:
Properties:
NameTypeDescription
trackTrack

A reference to track that was removed.