Namespace: SpawnDev.SpawnJS.JSObjects
Inherits: EventTarget, IEnumerable<VideoTrack>
Source: JSObjects/VideoTrackList.cs
MDN Reference: VideoTrackList on MDN
The VideoTrackList interface is used to represent a list of the video tracks contained within a <video> element, with each track represented by a separate VideoTrack object in the list. Retrieve an instance of this object with HTMLMediaElement.videoTracks. The individual tracks can be accessed using array syntax or functions such as forEach() for example. https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList
| Property | Type | Access | Description |
|---|---|---|---|
Length |
int |
get | Returns the number of track objects in the list. |
SelectedIndex |
int |
get | The index of the currently selected track, if any, or −1 otherwise. |
| Method | Return Type | Description |
|---|---|---|
GetEnumerator() |
IEnumerator<VideoTrack> |
|
GetTrackById(string id) |
VideoTrack? |
Returns the track found within the list whose id matches the specified string. If no match is found, null is returned. |
| Event | Type | Description |
|---|---|---|
OnAddTrack |
ActionEvent<TrackEvent> |
Fired when a new track has been added to the media element. |
OnChange |
ActionEvent<Event> |
Fired when a track has been enabled or disabled. |
OnRemoveTrack |
ActionEvent<TrackEvent> |
Fired when a track has been removed from the media element. |
SpawnDev.SpawnJS Mapping Note: The JavaScript examples below show the standard Web API usage. In SpawnDev.SpawnJS, the same API is available with C# conventions:
- Properties and methods use PascalCase (e.g.,
readyStatebecomesReadyState)- Events use ActionEvent with
+=/-=(e.g.,addEventListener("click", fn)becomesOnClick += handler)- Async methods return
Task<T>instead ofPromise<T>- Objects should be disposed with
usingstatements- Access via
JS.Get<VideoTrackList>(...)or constructornew VideoTrackList(...)
const videoTracks = document.querySelector("video").videoTracks;videoTracks.onaddtrack = updateTrackCount;
videoTracks.onremovetrack = updateTrackCount;
function updateTrackCount(event) {
trackCount = videoTracks.length;
drawTrackCountIndicator(trackCount);
}