2.3.2 数据类型与用法

通常为约束指定值时,既可以指定具体值也可以指定一个对象,在对象中包含exact或ideal属性,用来告诉浏览器该约束的确切值和理想值;有的约束还支持在对象中指定最小值(min)或最大值(max)。

以视频width为例,其数据类型是ConstrainULong,代码清单2-28中展示了类型为ConstrainULong时,为width指定约束条件的3种方法。

代码清单2-28 为width指定约束条件的3种方法

// 方法1:直接指定值
const constraints = {
  width: 1280,
  height: 720,
  aspectRatio: 3/2
};
// 方法2:指定最小值和理想值
const constraints = {
  frameRate: {min: 20},
  width: {min: 640, ideal: 1280},
  height: {min: 480, ideal: 720},
  aspectRatio: 3/2
};
// 方法3:指定最小值、理想值和最大值
const constraints = {
  width: {min: 320, ideal: 1280, max: 1920},
  height: {min: 240, ideal: 720, max: 1080},
};

可以看到,约束的使用非常灵活,每种用法表达的含义不同,而用法与其数据类型又有直接的关系,为了更好地理解约束并掌握约束的用法,我们先介绍约束使用的数据类型,如表2-2所示。

表2-2 约束相关的数据类型

034-01

请注意MediaTrackConstraints定义中属性的类型,不同的类型意味着不同的使用方法,将数据类型与表2-2进行对照,其用法便清晰了。