MediaStreamTrack.applyConstraints()方法

MediaStreamTrack接口的applyConstraints()方法的作用是向轨道应用一组约束。 这些约束使网站或应用程序可以为轨道的可约束属性(例如帧频,尺寸,回声消除等)建立理想值和可接受的范围值。

约束可用于确保媒体符合您喜欢的某些准则。 例如,您可能更喜欢高清视频,但要求帧速率稍低一些,以帮助将数据速率保持在足够低的水平,以免使网络过载。 约束还可以指定理想的和/或可接受的大小或大小范围。 

语法

const promise = track.applyConstraints(constraints);

参数

constraints 可选的

一个MediaTrackConstraints对象,列出要应用于轨道的可约束属性的约束。任何现有的约束都将替换为指定的新值,并且未包括的所有可约束属性都将恢复为其默认约束。 如果省略此参数,那么将清除所有当前设置的自定义约束。 

返回值

当约束应用成功的时,返回一个Promise对象。 如果约束应用失败,则使用名为OverconstrainedError的MediaStreamError失败回调Promise,以指示无法满足约束。 如果指定的约束过于严格而无法在试图配置轨道时找到匹配项,则会发生这种情况。

例子

下面的例子显示了如何指定基本和高级约束集。 它指定页面或Web应用程序需要在640和1280之间的宽度以及在480和720之间的高度,每对中的后一个数字是首选。 advanced属性进一步指定1920 x 1280的图像大小是首选,如果没有可用的宽高比,则为1.333。 

const constraints = {
                  {min: 640, ideal: 1280},
              height:   {min: 480, ideal: 720},
              advanced: [{ 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.
    });
});
原文地址:https://www.cnblogs.com/iuyy/p/13407844.html