MediaStreamTrack: applyConstraints() 方法
applyConstraints()
是 MediaStreamTrack
接口的一个方法,用于将一组约束应用于轨道;这些约束使网站或应用程序能够为轨道的可约束属性(如帧速率、尺寸、回声消除等)建立理想值和可接受的值范围。
约束可用于确保媒体符合您偏好的某些准则。例如,您可能偏好高密度视频,但要求帧速率略低,以帮助将数据速率保持在足够低的水平,以免过度占用网络。约束还可以指定理想的尺寸或尺寸范围,或可接受的尺寸或尺寸范围。有关如何应用您偏好的约束的更多信息,请参阅 应用约束(在 功能、约束和设置 中)。
语法
applyConstraints()
applyConstraints(constraints)
参数
constraints
可选-
一个
MediaTrackConstraints
对象,列出了要应用于轨道可约束属性的约束;任何现有约束都将被指定的新值替换,任何未包含的可约束属性都将恢复为其默认约束。如果省略此参数,则将清除所有当前设置的自定义约束。此对象表示必须应用于Promise
解决的基本约束集。该对象可能包含一个高级属性,其中包含一个额外的MediaTrackConstraints
对象数组,这些对象被视为精确要求。
返回值
一个 Promise
,当约束成功应用时解析。如果无法应用约束,则承诺将被一个 OverconstrainedError
拒绝,这是一个 DOMException
,其名称为 OverconstrainedError
,并带有其他参数,以及,以指示无法满足约束。如果在尝试配置轨道时,指定的约束过于严格而无法找到匹配项,则可能会发生这种情况。
示例
以下示例显示了如何指定基本约束集和高级约束集。它指定页面或 Web 应用程序需要宽度介于 640 到 1280 之间,高度介于 480 到 720 之间,其中每对中的后一个数字是首选的。高级属性进一步指定 1920 x 1280 的图像尺寸是首选的,或者 纵横比 为 1.333(如果不可用)。请注意,这些约束也说明了规范中提到的“回退策略”。
const constraints = {
width: { min: 640, ideal: 1280 },
height: { min: 480, ideal: 720 },
advanced: [{ width: 1920, height: 1280 }, { aspectRatio: 1.333 }],
};
navigator.mediaDevices.getUserMedia({ video: true }).then((mediaStream) => {
const track = mediaStream.getVideoTracks()[0];
track
.applyConstraints(constraints)
.then(() => {
// Do something with the track such as using the Image Capture API.
})
.catch((e) => {
// The constraints could not be satisfied by the available devices.
});
});
规范
规范 |
---|
媒体捕获和流 # dom-mediastreamtrack-applyconstraints |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。