The MediaStream interface represents a stream of media content. A stream consists of several tracks such as video or audio tracks.

Some user agents subclass this interface to provide more precise information or functionality, like in CanvasCaptureMediaStream.

Properties

This interface inherits properties from its parent, EventTarget.

MediaStream.active Read only
A Boolean value that returns true if the MediaStream is active, or false otherwise.
MediaStream.ended Read only  
Is a Boolean value set to true if the ended event has been fired on the object, meaning that the stream has been completely read, or false if the end of the stream has not been reached.
MediaStream.id Read only
Is a DOMString containing 36 characters denoting a universally unique identifier (UUID) for the object.

Event handlers

MediaStream.onactive
Is an EventHandler containing the action to perform when an active event is fired when a MediaStream object becomes active.
MediaStream.onaddtrack
Is an EventHandler containing the action to perform when an addtrack event is fired when a new MediaStreamTrack object is added.
MediaStream.onended 
Is an EventHandler containing the action to perform when an ended event is fired when the streaming is terminating.
MediaStream.oninactive
Is an EventHandler containing the action to perform when an inactive event is fired when a MediaStream object becomes inactive.
MediaStream.onremovetrack
Is an EventHandler containing the action to perform when an removetrack event is fired when a  MediaStreamTrack object is removed from it.

Methods

This interface inherits methods from its parent, EventTarget.

MediaStream.addTrack()
Stores a copy of the MediaStreamTrack given as argument. If the track has already been added to the MediaStream object, nothing happens; if the track is in the finished state - that is, has already reached its end - the exception INVALID_STATE_RAISE is raised.
MediaStream.clone()
Returns a clone of the MediaStream object. The clone will have a new ID value.
MediaStream.getAudioTracks()
Returns a list of the MediaStreamTrack objects stored in the MediaStream object that have their kind attribute set to "audio". The order is not defined, and may not only vary from one browser to another, but also from one call to another.
MediaStream.getTrackById()
Returns the track whose ID corresponds to the one given in parameters, trackid. If no parameter is given, or if no track with that ID does exist, it returns null. If several tracks have the same ID, it returns the first one.
MediaStream.getTracks()
Returns a list of all MediaStreamTrack objects stored in the MediaStream object, regardless of the value of the kind attribute. The order is not defined, and may not only vary from one browser to another, but also from one call to another.
MediaStream.getVideoTracks()
Returns a list of the MediaStreamTrack objects stored in the MediaStream object that have their kind attribute set to "video". The order is not defined, and may not only vary from one browser to another, but also from one call to another.
MediaStream.removeTrack()
Removes the MediaStreamTrack given as argument. If the track is not part of the MediaStream object, nothing happens; if the track is in the finished state - that is, it has already reached its end - the exception INVALID_STATE_RAISE is raised.

Specifications

Specification Status Comment
Media Capture and Streams
The definition of 'MediaStream' in that specification.
Candidate Recommendation  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (Yes) Not supported Not supported ?
getAudioTracks() and getVideoTracks() (Yes) 23.0 (23.0) Not supported Not supported ?
id (Yes) 41.0 (41.0) ? ? ?
ended, label, and stop() (Yes) [1]        
Feature Android Android Webview Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Yes) (Yes) Not supported Not supported ? (Yes)
getAudioTracks() and getVideoTracks() ? (Yes) 23.0 (23.0) Not supported Not supported ? (Yes)
id ? (Yes) 41.0 (41.0) ? ? ? (Yes)
ended, label, and stop() ? (Yes) [1]         (Yes) [1]

[1] Deprecated in Chrome 45.

See also

  • Using the MediaStream API

Document Tags and Contributors

Last updated by: teoli,