MediaTrackSupportedConstraints
==============================

The **`MediaTrackSupportedConstraints`** dictionary establishes the list of constrainable properties recognized by the user agent or browser in its implementation of the `MediaStreamTrack` object. An object conforming to `MediaTrackSupportedConstraints` is returned by `MediaDevices.getSupportedConstraints()`.

Because of the way interface definitions in WebIDL work, if a constraint is requested but not supported, no error will occur. Instead, the specified constraints will be applied, with any unrecognized constraints stripped from the request. That can lead to confusing and hard to debug errors, so be sure to use `getSupportedConstraints()` to retrieve this information before attempting to establish constraints if you need to know the difference between silently ignoring a constraint and a constraint being accepted.

An actual constraint set is described using an object based on the `MediaTrackConstraints` dictionary.

To learn more about how constraints work, see Capabilities, constraints, and settings.

Instance properties
-------------------

Some combination—but not necessarily all—of the following properties will exist on the object.

`autoGainControl`

A Boolean whose value is `true` if the `autoGainControl` constraint is supported in the current environment.

`width`

A Boolean value whose value is `true` if the `width` constraint is supported in the current environment.

`height`

A Boolean value whose value is `true` if the `height` constraint is supported in the current environment.

`aspectRatio`

A Boolean value whose value is `true` if the `aspectRatio` constraint is supported in the current environment.

`frameRate`

A Boolean value whose value is `true` if the `frameRate` constraint is supported in the current environment.

`facingMode`

A Boolean value whose value is `true` if the `facingMode` constraint is supported in the current environment.

`resizeMode`

A Boolean value whose value is `true` if the `resizeMode` constraint is supported in the current environment.

`volume` 
Deprecated

Non-standard

A Boolean value whose value is `true` if the `volume` constraint is supported in the current environment.

`sampleRate`

A Boolean value whose value is `true` if the `sampleRate` constraint is supported in the current environment.

`sampleSize`

A Boolean value whose value is `true` if the `sampleSize` constraint is supported in the current environment.

`echoCancellation`

A Boolean value whose value is `true` if the `echoCancellation` constraint is supported in the current environment.

`latency`

A Boolean value whose value is `true` if the `latency` constraint is supported in the current environment.

`noiseSuppression`

A Boolean whose value is `true` if the `noiseSuppression` constraint is supported in the current environment.

`channelCount`

A Boolean value whose value is `true` if the `channelCount` constraint is supported in the current environment.

`deviceId`

A Boolean value whose value is `true` if the `deviceId` constraint is supported in the current environment.

`groupId`

A Boolean value whose value is `true` if the `groupId` constraint is supported in the current environment.

### Instance properties specific to shared screen tracks

For tracks containing video sources from the user's screen contents, the following additional properties are may be included in addition to those available for video tracks.

`displaySurface`

A Boolean value which is `true` if the `displaySurface` constraint is supported in the current environment.

`logicalSurface`

A Boolean value which is `true` if the `logicalSurface` constraint is supported in the current environment.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Media Capture and Streams API
* Capabilities, constraints, and settings
* Screen Capture API
* Using the Screen Capture API
* `MediaTrackConstraints`
* `MediaDevices.getUserMedia()`
* `MediaStreamTrack.getConstraints()`
* `MediaStreamTrack.applyConstraints()`
* `MediaStreamTrack.getSettings()`