MediaTrackConstraints

MediaTrackConstraints 字典用于描述一组功能以及每个功能可以采用的值或值集。约束字典传递到 applyConstraints(),以允许脚本为轨道建立一组确切的(必需)值或范围和/或首选值或范围,并且可以通过调用 getConstraints() 来检索最近请求的一组自定义约束。

约束

以下类型用于指定属性的约束。它们允许您指定一个或多个exact 值,其中一个必须是参数的值,或者指定一组ideal 值,这些值应尽可能使用。您还可以指定一个值(或一个值数组),用户代理将尽力在应用所有更严格的约束后匹配该值。

要详细了解约束的工作原理,请参阅 功能、约束和设置

注意:minexact 值不允许在 MediaDevices.getDisplayMedia() 调用中使用的约束中使用 - 它们会产生TypeError - 但它们允许在 MediaStreamTrack.applyConstraints() 调用中使用的约束中使用。

ConstrainBoolean

ConstrainBoolean 约束类型用于指定属性的约束,该属性的值为布尔值。它的值可以设置为布尔值(truefalse)或包含以下属性的对象

确切的

一个布尔值,必须是属性的值。如果该属性无法设置为该值,则匹配将失败。

理想的

一个布尔值,指定属性的理想值。如果可能,将使用此值,但如果不可能,则用户代理将使用最接近的匹配项。

ConstrainDouble

ConstrainDouble 约束类型用于指定属性的约束,该属性的值为双精度浮点数。它的值可以设置为数字或包含以下属性的对象

最大

一个十进制数,指定其描述的属性的最大允许值。如果该值不能保持等于或小于该值,则匹配将失败。

最小

一个十进制数,指定其描述的属性的最小允许值。如果该值不能保持等于或大于该值,则匹配将失败。

确切的

一个十进制数,指定属性必须具有的特定、必需的值才能被视为可接受的值。

理想的

一个十进制数,指定属性的理想值。如果可能,将使用此值,但如果不可能,则用户代理将使用最接近的匹配项。

ConstrainDOMString

ConstrainDOMString 约束类型用于指定属性的约束,该属性的值为字符串。它的值可以设置为字符串、字符串数组或包含以下属性的对象

确切的

一个字符串或一个字符串数组,其中一个必须是属性的值。如果该属性无法设置为列出的值之一,则匹配将失败。

理想的

一个字符串或一个字符串数组,指定属性的理想值。如果可能,将使用列出的值之一,但如果不可能,则用户代理将使用最接近的匹配项。

ConstrainULong

ConstrainULong 约束类型用于指定属性的约束,该属性的值为整数。它的值可以设置为数字或包含以下属性的对象

最大

一个整数,指定其描述的属性的最大允许值。如果该值不能保持等于或小于该值,则匹配将失败。

最小

一个整数,指定其描述的属性的最小允许值。如果该值不能保持等于或大于该值,则匹配将失败。

确切的

一个整数,指定属性必须具有的特定、必需的值才能被视为可接受的值。

理想的

一个整数,指定属性的理想值。如果可能,将使用此值,但如果不可能,则用户代理将使用最接近的匹配项。

实例属性

对象上会存在以下属性的一些组合 - 但不一定全部 -。这可能是因为给定浏览器不支持该属性,或者因为它不适用。例如,由于 RTP 在协商 WebRTC 连接时不提供其中一些值,因此与 RTCPeerConnection 关联的轨道将不包含某些值,例如 facingModegroupId

所有媒体轨道的实例属性

设备 ID

一个 ConstrainDOMString 对象,指定可接受和/或必需的设备 ID 或设备 ID 数组。

组 ID

一个 ConstrainDOMString 对象,指定可接受和/或必需的组 ID 或组 ID 数组。

音频轨道的实例属性

自动增益控制

一个 ConstrainBoolean 对象,指定是否首选和/或需要自动增益控制。

声道数

一个 ConstrainULong,指定可接受和/或必需的声道数或声道数范围。

回声消除

一个 ConstrainBoolean 对象,指定是否首选和/或需要回声消除。

延迟

一个 ConstrainDouble,指定可接受和/或必需的延迟或延迟范围。

噪声抑制

一个 ConstrainBoolean,指定是否首选和/或需要噪声抑制。

采样率

一个 ConstrainULong,指定可接受和/或必需的采样率或采样率范围。

样本大小

一个 ConstrainULong,指定可接受和/或必需的样本大小或样本大小范围。

volume 已弃用 非标准

一个 ConstrainDouble,指定可接受和/或必需的音量或音量范围。

图像轨道的实例属性

白平衡模式

一个 String,指定"none""manual""single-shot""continuous" 之一。

曝光模式

一个 String,指定"none""manual""single-shot""continuous" 之一。

对焦模式

一个 String,指定"none""manual""single-shot""continuous" 之一。

兴趣点

传感器上一个或多个兴趣点的像素坐标。这可以是 { x:value, y:value } 形式的对象,也可以是此类对象的数组,其中value 是双精度整数。

曝光补偿

一个 ConstrainDouble(双精度整数),指定最多 ±3 的光圈调整。

色温

一个 ConstrainDouble(双精度整数),指定以开尔文度为单位的所需色温。

ISO

一个 ConstrainDouble(双精度整数),指定所需的 ISO 设置。

亮度

一个 ConstrainDouble(双精度整数),指定所需的亮度设置。

对比度

一个 ConstrainDouble(双精度整数),指定明暗之间的差异程度。

饱和度

一个 ConstrainDouble(双精度整数),指定颜色强度的程度。

锐度

一个 ConstrainDouble(双精度整数),指定边缘的强度。

对焦距离

一个 ConstrainDouble(双精度整数),指定对焦对象的距离。

变焦

一个 ConstrainDouble(双精度整数),指定所需的焦距。

手电筒

一个布尔值,定义填充光是否持续连接,这意味着只要轨道处于活动状态,它就会一直亮着。

视频轨道的实例属性

纵横比

一个 ConstrainDouble,指定视频 纵横比 或可接受和/或必需的纵横比范围。

面对模式

一个 ConstrainDOMString 对象,指定可接受和/或必需的面部或面部数组。

帧速率

一个 ConstrainDouble,指定可接受和/或必需的帧速率或帧速率范围。

高度

一个 ConstrainULong,指定可接受和/或必需的视频高度或高度范围。

宽度

一个 ConstrainULong,指定可接受和/或必需的视频宽度或宽度范围。

resizeMode

一个 ConstrainDOMString 对象,指定 UA 可以用来推导出视频轨道分辨率的模式或模式数组。允许的值为 nonecrop-and-scalenone 表示用户代理使用相机、其驱动程序或操作系统提供的分辨率。crop-and-scale 表示用户代理可以使用裁剪和缩小相机输出,以满足影响分辨率的其他约束。

共享屏幕轨道的实例属性

这些约束适用于传递给 getDisplayMedia() 以获取用于屏幕共享的流的对象的 video 属性。

显示面

一个 ConstrainDOMString,指定用户可以选择的用户可以选择显示表面的类型。这可以是以下字符串中的一个,或者是一个列表,允许多个源表面

browser

该流包含用户选择的一个浏览器标签的内容。

monitor

该流的视频轨道包含用户一个或多个屏幕的全部内容。

window

该流包含用户选择用于共享的一个窗口。

逻辑面

一个 ConstrainBoolean 值,可以包含一个布尔值或一组布尔值,指示是否允许用户选择与显示区域不直接对应的源表面。这些可能包括窗口的后台缓冲区,允许捕获被其前面其他窗口隐藏的窗口内容,或者包含需要滚动才能在其窗口中查看整个内容的更大文档的缓冲区。

suppressLocalAudioPlayback 实验性

一个 ConstrainBoolean 值,描述对 suppressLocalAudioPlayback 可约束属性的值施加的请求或强制约束。此属性控制当标签被捕获时,标签中播放的音频是否会继续从用户的本地扬声器中播放出来。

规范

规范
媒体捕获和流
# dom-mediatrackconstraints

另请参阅