上QQ阅读APP看书,第一时间看更新
2.3 媒体约束
应用媒体约束是较为复杂且灵活的一部分,我们在本节进行详细讨论。
媒体约束、媒体能力、媒体约束设定值理解起来容易混淆。媒体约束是指媒体某一项技术特性,如分辨率、帧率等;媒体能力是当前设备能够支持的某个约束的量化指标,如帧率最高30;媒体约束设定值是指包含了浏览器默认设定值的所有媒体约束。
通常,我们使用如下方法处理媒体约束、媒体能力和媒体约束设定值。
- MediaDevices.getSupportedConstraints():获取当前浏览器支持的约束数组。
- MediaStreamTrack.getCapabilities():有了支持的约束数组,使用该方法获取这些约束的取值范围。
- MediaStreamTrack.applyConstraints():根据应用程序的需要,调用该方法为约束指定自定义的值。
- MediaStreamTrack.getConstraints():获取上述applyConstraints()方法传入的值。
- MediaStreamTrack.getSettings():获取当前轨道上所有约束的实际值。
由于浏览器对约束的支持情况不同,下文介绍的约束并不一定是所有浏览器都支持。所以在使用约束前,需要先使用方法MediaDevices.getSupportedConstraints()进行检查。
代码清单2-25获取当前浏览器支持的所有约束对象,并检查是否支持iso约束。
代码清单2-25 检查iso约束示例
let supportedConstraints = navigator.mediaDevices.getSupportedConstraints(); if ( supportedConstraints && supportedConstraints.iso ) { // 存在名为iso的约束 }