媒体追踪约束
======

The **`MediaTrackConstraints`** dictionary is used to describe a set of capabilities and the value or values each can take on. A constraints dictionary is passed into `applyConstraints()` (en-US) to allow a script to establish a set of exact (required) values or ranges and/or preferred values or ranges of values for the track, and the most recently-requested set of custom constraints can be retrieved by calling `getConstraints()`.

For each constraint, you can typically specify an exact value you need, an ideal value you want, a range of acceptable values, and/or a value which you'd like to be as close to as possible. The specifics vary somewhat depending on the type of the constrainable property.

To learn more about how constraints work, see Capabilities, constraints, and settings (en-US).

Properties
----------

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

### Properties of all media tracks

`deviceId` (en-US)

A `ConstrainDOMString` (en-US) object specifying a device ID or an array of device IDs which are acceptable and/or required.

`groupId` (en-US)

A `ConstrainDOMString` (en-US) object specifying a group ID or an array of group IDs which are acceptable and/or required.

### Properties of audio tracks

`autoGainControl` (en-US)

一个 `ConstrainBoolean` (en-US) 对象，用来指明是否首选或要求使用声音的自动增益。

`channelCount` (en-US)

一个 `ConstrainLong` (en-US)，用来指明可选或要求的声道数或者是声道数的范围。

`echoCancellation` (en-US)

一个 `ConstrainBoolean` (en-US) 对象，用来指明是否首选或需要开启回声消除。

`latency` (en-US)

一个 `ConstrainDouble` (en-US)，用来指明多大延迟是被可接受的。

`noiseSuppression` (en-US)

一个 `ConstrainBoolean` (en-US)，用来指明是否首选或需要开启降噪。

`sampleRate` (en-US)

一个 `ConstrainLong` (en-US)，用来指明可接受的或要求的音频采样率/采样率范围。

`sampleSize` (en-US)

一个 `ConstrainLong` (en-US)，用来指明可接受的或要求的音频采样大小/采样范围。

`volume` (en-US)

一个 `ConstrainDouble` (en-US)，用来指明可接受的或要求的音量大小/范围。

### Properties of image tracks

`whiteBalanceMode`

A `String` specifying one of `"none"`, `"manual"`, `"sigle-shot"`, or `"continuous"`.

`exposureMode`

A `String` specifying one of `"none"`, `"manual"`, `"sigle-shot"`, or `"continuous"`.

`focusMode`

A `String` specifying one of `"none"`, `"manual"`, `"sigle-shot"`, or `"continuous"`.

`pointsOfInterest`

The pixel coordinates on the sensor of one or more points of interest. This is either an object in the form { x:*value*, y:*value* } or an array of such objects, where *value* is a double-precision integer.

`exposureCompensation`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying f-stop adjustment by up to ±3.

`colorTemperature`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying a desired color temperature in degrees kelvin.

`iso`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying a desired iso setting.

`brightness`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying a desired brightness setting.

`contrast`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying the degree of difference between light and dark.

`saturation`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying the degree of color intensity.

`sharpness`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying the intensity of edges.

`focusDistance`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying distance to a focused object.

`zoom`

A `ConstrainDouble` (en-US) (a double-precision integer) specifying the desired focal length.

`torch`

A `Boolean` whter the fill light continuously connected, meaning it stays on as long as the track is active.

### Properties of video tracks

`aspectRatio` (en-US)

A `ConstrainDouble` (en-US) specifying the video aspect ratio or range of aspect ratios which are acceptable and/or required.

`facingMode` (en-US)

A `ConstrainDOMString` (en-US) object specifying a facing or an array of facings which are acceptable and/or required.

`frameRate` (en-US)

A `ConstrainDouble` (en-US) specifying the frame rate or range of frame rates which are acceptable and/or required.

`height` (en-US)

A `ConstrainLong` (en-US) specifying the video height or range of heights which are acceptable and/or required.

`width` (en-US)

A `ConstrainLong` (en-US) specifying the video width or range of widths which are acceptable and/or required.

Specifications
--------------

| Specification |
| --- |
| Media Capture and Streams # dom-mediatrackconstraints |

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

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

See also
--------

* `MediaDevices.getUserMedia()`
* `MediaStreamTrack.getConstraints()`
* `MediaStreamTrack.applyConstraints()` (en-US)
* `MediaDevices.getSupportedConstraints()`
* `MediaTrackSupportedConstraints` (en-US)
* `MediaStreamTrack.getSettings()` (en-US)