MediaStreamTrack

The MediaStreamTrack interface represents a single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well.

Properties

In addition to the properties listed below, MediaStreamTrack has constrainable properties which can be set using applyConstraints() and accessed using getConstraints() and getSettings(). See Capabilities, constraints, and settings to learn how to correctly work with constrainable properties. Not doing so correctly will result in your code being unreliable.

MediaStreamTrack.contentHint

A string that may be used by the web application to provide a hint as to what type of content the track contains to guide how it should be treated by API consumers.

MediaStreamTrack.enabled

A Boolean whose value of true if the track is enabled, that is allowed to render the media source stream; or false if it is disabled, that is not rendering the media source stream but silence and blackness. If the track has been disconnected, this value can be changed but has no more effect.

Note: You can implement standard "mute" functionality by setting enabled to false. The muted property refers to a condition in which there's no media because of a technical issue.

MediaStreamTrack.id Read only

Returns a DOMString containing a unique identifier (GUID) for the track; it is generated by the browser.

MediaStreamTrack.kind Read only

Returns a DOMString set to "audio" if the track is an audio track and to "video", if it is a video track. It doesn't change if the track is deassociated from its source.

MediaStreamTrack.label Read only

Returns a DOMString containing a user agent-assigned label that identifies the track source, as in "internal microphone". The string may be left empty and is empty as long as no source has been connected. When the track is deassociated from its source, the label is not changed.

MediaStreamTrack.muted Read only

Returns a Boolean value indicating whether the track is unable to provide media data due to a technical issue.

Note: You can implement standard "mute" functionality by setting enabled to false, and unmute the media by setting it back to true again.

MediaStreamTrack.readyState Read only

Returns an enumerated value giving the status of the track. This will be one of the following values:

  • "live" which indicates that an input is connected and does its best-effort in providing real-time data. In that case, the output of data can be switched on or off using the enabled attribute.
  • "ended" which indicates that the input is not giving any more data and will never provide new data.
MediaStreamTrack.remote Read only

Returns a Boolean with a value of true if the track is sourced by a RTCPeerConnection, false otherwise.

Methods

MediaStreamTrack.applyConstraints()

Lets the application specify the ideal and/or ranges of acceptable values for any number of the available constrainable properties of the MediaStreamTrack.

MediaStreamTrack.clone()

Returns a duplicate of the MediaStreamTrack.

MediaStreamTrack.getCapabilities()

Returns the a list of constrainable properties available for the MediaStreamTrack.

MediaStreamTrack.getConstraints()

Returns a MediaTrackConstraints object containing the currently set constraints for the track; the returned value matches the constraints last set using applyConstraints().

MediaStreamTrack.getSettings()

Returns a MediaTrackSettings object containing the current values of each of the MediaStreamTrack's constrainable properties.

MediaStreamTrack.stop()

Stops playing the source associated to the track, both the source and the track are deassociated. The track state is set to ended.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface:

ended

Sent when playback of the track ends (when the value readyState changes to ended). Also available using the onended event handler property.

mute

Sent to the MediaStreamTrack when the value of the muted property is changed to true, indicating that the track is unable to provide data temporarily (such as when the network is experiencing a service malfunction). Also available using the onmute event handler property.

overconstrained

Sent when the constraints specified for the track cause the track to be incompatible and therefore to not be used. Also available through the onoverconstrained event handler property.

unmute

Sent to the track when data becomes available again, ending the muted state. Also available through the onunmute event handler property.

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
MediaStreamTrack
26
12
22
No
15
11
≤37
26
22
14
11
1.5
applyConstraints
63
12
50
No
46
11
63
63
50
43
11
7.0
clone
45
12
48
No
32
11
45
45
Yes
32
11
5.0
contentHint
60
≤79
No
No
47
12.1
60
60
No
44
12.2
8.0
enabled
Yes
12
24
No
Yes
11
Yes
Yes
24
Yes
11
Yes
ended_event
Yes
12
50
No
Yes
Yes
Yes
Yes
50
Yes
Yes
Yes
getCapabilities
66
12
No
No
53
11
66
66
No
47
11
9.0
getConstraints
53
12
50
No
Yes
11
53
52
50
Yes
11
6.0
getSettings
61
12
50
No
48
11
61
61
50
45
11
8.0
id
26
12
Yes
No
15
11
≤37
26
Yes
14
11
1.5
kind
Yes
12
Yes
No
Yes
11
Yes
Yes
Yes
Yes
11
Yes
label
Yes
12
Yes
No
Yes
11
Yes
Yes
Yes
Yes
11
Yes
mute_event
Yes
12
59
No
Yes
Yes
Yes
Yes
59
Yes
Yes
Yes
muted
Yes
12
59
No
Yes
11
Yes
Yes
59
Yes
11
Yes
onended
Yes
12
50
No
Yes
11
Yes
Yes
50
Yes
11
Yes
onmute
Yes
12
59
No
Yes
11
Yes
Yes
59
Yes
11
Yes
onoverconstrained
No
12-79
No
No
No
11
No
No
No
No
11
No
onunmute
Yes
12
59
No
Yes
11
Yes
Yes
59
Yes
11
Yes
readyState
Yes
12
50
No
Yes
11
Yes
Yes
50
Yes
11
Yes
remote
48-59
12-79
Yes
No
35-46
No
48-59
48-59
Yes
35-43
No
5.0-7.0
stop
61
12
34
No
45
11
61
61
34
43
11
8.0
unmute_event
Yes
12
59
No
Yes
Yes
Yes
Yes
59
Yes
Yes
Yes

See also

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack