MediaStreamTrack: applyConstraints() 方法
Baseline 广泛可用 *
MediaStreamTrack 接口的 applyConstraints() 方法将一组约束应用于轨道;这些约束允许网站或应用为轨道的(可约束)属性(例如帧率、尺寸、回声消除等)建立理想值和可接受的值范围。
约束可以用来确保媒体满足你偏好的某些指南。例如,你可能偏好高分辨率视频,但要求帧率稍低一些,以帮助保持数据速率足够低,避免网络负担过重。约束还可以指定理想和/或可接受的尺寸或尺寸范围。有关如何应用你偏好的约束的更多信息,请参阅 功能、约束和设置 中的 应用约束。
语法
applyConstraints()
applyConstraints(constraints)
参数
constraints可选-
一个
MediaTrackConstraints对象,列出了要应用于轨道可约束属性的约束;任何现有约束都将被指定的新值替换,并且任何未包含的可约束属性都将恢复到其默认约束。如果省略此参数,则会清除所有当前设置的自定义约束。此对象代表了Promise解析必须适用的基本约束集。该对象可能包含一个 `advanced` 属性,其中包含其他MediaTrackConstraints对象的数组,这些对象被视为严格要求。
返回值
一个 Promise,当约束成功应用时解析。如果约束无法应用,则 promise 会因一个 OverconstrainedError(该错误是一个 DOMException,其名称为 OverconstrainedError,并带有附加参数)而被拒绝,以表明约束无法满足。当尝试配置轨道时,如果指定的约束过于严格而无法找到匹配项,则可能发生这种情况。
示例
以下显示了如何指定一组基本和高级约束。它指定页面或 Web 应用需要宽度在 640 到 1280 之间,高度在 480 到 720 之间,其中每对数字的后一个数字是首选。`advanced` 属性进一步指定,首选图像尺寸为 1920x1280,或者 纵横比 为 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 |
浏览器兼容性
加载中…