Web/API/MediaStreamTrack

From Get docs


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.isolated Read only
Returns a Boolean value which is true if the track is isolated; that is, the track cannot be accessed by the document that owns the MediaStreamTrack. This happens when the peerIdentity property is set, or if the track comes from a cross-origin source.
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.readonly Read only
Returns a Boolean value with a value of true if the track is readonly (such a video file source or a camera that settings can't be modified), false otherwise.
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.
isolationchange
Sent whenever the value of the isolated property changes due to the document gaining or losing permission to access the track. Also available through the onisolationchange 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

Specification Status Comment
Identity for WebRTCThe definition of 'Isolated tracks' in that specification. Candidate Recommendation Additional properties for isolated track support
Media Capture and StreamsThe definition of 'MediaStreamTrack' in that specification. Candidate Recommendation Initial definition

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
MediaStreamTrack Chrome

Full support 29

Edge

Full support 12

Firefox

Full support 22

IE

No support No

Opera

Full support 16

Safari

Full support 11

WebView Android

Full support ≤37

Chrome Android

Full support 29

Firefox Android

Full support 22

Opera Android

Full support 16

Safari iOS

Full support 11

Samsung Internet Android

Full support 2.0

applyConstraints Chrome

Full support 63

Edge

Full support 12

Firefox

Full support 50

IE

No support No

Opera

Full support 46

Safari

Full support Yes

WebView Android

Full support 63

Chrome Android

Full support 63

Firefox Android

Full support 50

Opera Android

Full support 43

Safari iOS

Full support Yes

Samsung Internet Android

Full support 7.0

clone Chrome

Full support 45

Edge

Full support 12

Firefox

Full support 48

IE

No support No

Opera

Full support 32

Safari

Full support Yes

WebView Android

Full support 45

Chrome Android

Full support 45

Firefox Android

Full support Yes

Opera Android

Full support 32

Safari iOS

Full support Yes

Samsung Internet Android

Full support 5.0

contentHint Chrome

Full support 60

Edge

Full support ≤79

Firefox

?

IE

No support No

Opera

Full support 47

Safari

?

WebView Android

Full support 60

Chrome Android

Full support 60

Firefox Android

?

Opera Android

Full support 44

Safari iOS

?

Samsung Internet Android

Full support 8.0

enabled Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 24

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 24

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

ended event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 50

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 50

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

getCapabilities Chrome

Full support 66

Edge

Full support 12

Firefox

No support No

IE

No support No

Opera

Full support 53

Safari

Full support Yes

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

No support No

Opera Android

Full support 47

Safari iOS

Full support Yes

Samsung Internet Android

Full support 9.0

getConstraints Chrome

Full support 53

Edge

Full support 12

Firefox

Full support 50

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support 53

Chrome Android

Full support 52

Firefox Android

Full support 50

Opera Android

Full support Yes

Safari iOS

No support No

Samsung Internet Android

Full support 6.0

getSettings Chrome

Full support 61

Edge

Full support 12

Firefox

Full support 50

IE

No support No

Opera

Full support 48

Safari

Full support Yes

WebView Android

Full support 61

Chrome Android

Full support 61

Firefox Android

Full support 50

Opera Android

Full support 45

Safari iOS

Full support 11

Samsung Internet Android

Full support 8.0

getSources

Deprecated'

Chrome

No support ? — 56

Edge

?

Firefox

No support No

IE

No support No

Opera

No support ? — 43

Safari

?

WebView Android

No support ? — 56

Chrome Android

Full support 56

Firefox Android

?

Opera Android

No support ? — 43

Safari iOS

?

Samsung Internet Android

Full support 6.0

id Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

isolated Chrome

?

Edge

?

Firefox

No support No

IE

No support No

Opera

?

Safari

?

WebView Android

?

Chrome Android

?

Firefox Android

No support No

Opera Android

?

Safari iOS

?

Samsung Internet Android

?

kind Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

label Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

mute event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 59

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 59

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

muted Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 59

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 59

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

onended Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 50

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 50

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

onisolationchange Chrome

?

Edge

?

Firefox

No support No

IE

No support No

Opera

?

Safari

?

WebView Android

?

Chrome Android

?

Firefox Android

No support No

Opera Android

?

Safari iOS

?

Samsung Internet Android

?

onmute Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 59

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 59

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

onoverconstrained

Deprecated'Non-standard'

Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

?

Opera Android

?

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

onunmute Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 59

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 59

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

readonly

Deprecated'

Chrome

?

Edge

Full support 12

Firefox

?

IE

No support No

Opera

?

Safari

?

WebView Android

?

Chrome Android

?

Firefox Android

?

Opera Android

?

Safari iOS

?

Samsung Internet Android

?

readyState Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 50

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 50

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

remote

Deprecated'Non-standard'

Chrome

No support 48 — 59

Edge

No support 12 — 79

Firefox

Full support Yes

IE

No support No

Opera

No support 35 — 46

Safari

?

WebView Android

No support 48 — 59

Chrome Android

No support 48 — 59

Firefox Android

Full support Yes

Opera Android

No support 35 — 43

Safari iOS

?

Samsung Internet Android

No support 5.0 — 7.0

stop Chrome

Full support 61

Edge

Full support 12

Firefox

Full support 34

IE

No support No

Opera

Full support 45

Safari

Full support Yes

WebView Android

Full support 61

Chrome Android

Full support 61

Firefox Android

Full support 34

Opera Android

Full support 43

Safari iOS

Full support Yes

Samsung Internet Android

Full support 8.0

unmute event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 59

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 59

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.'
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.'
Deprecated. Not for use in new websites.


See also