MediaStreamTrack.getConstraints()

The getConstraints() method of the MediaStreamTrack interface returns a MediaTrackConstraints object containing the set of constraints most recently established for the track using a prior call to applyConstraints(). These constraints indicate values and ranges of values that the Web site or application has specified are required or acceptable for the included constrainable properties.

Constraints can be used to ensure that the media meets certain guidelines you prefer. For example, you may prefer high definition video but require that the frame rate be a little low to help keep the data rate low enough not overtax the network. Constraints can also specify ideal and/or acceptable sizes or ranges of sizes. See Capabilities, constraints, and settings for details on how to work with constrainable properties.

Syntax

var constraints = MediaStreamTrack.getConstraints();

Parameters

None.

Return value

MediaTrackConstraints object which indicates the constrainable properties the Web site or app most recently set using applyConstraints(). The properties in the returned object are listed in the same order as when they were set, and no properties not specifically set by the site or app are included.

The returned set of constraints doesn't necessarily describe the actual state of the media; if any of the constraints couldn't be met, they are still included in the returned object as originally set by the site's code. To get the currently active settings for all constrainable properties, you should instead call getSettings().

Example

This example obtains the current constraints for a track, sets the facingMode, and applies the updated constraints.

function switchCameras(track, camera) {
  let constraints = track.getConstraints();
  constraints.facingMode = camera;
  track.applyConstraints(constraints);
}

Specifications

Specification Status Comment
Media Capture and Streams
The definition of 'getConstraints()' in that specification.
Candidate Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic support
Deprecated
Chrome Full support 53Edge Full support 12Firefox Full support 50IE ? Opera Full support YesSafari ? WebView Android Full support 53Chrome Android Full support 52Edge Mobile ? Firefox Android Full support 50Opera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 6.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

Document Tags and Contributors

Contributors to this page: fscholz, ThorstenBux, VinceOPS, Sheppy, jpmedley
Last updated by: fscholz,