在上一篇中我们了解了getUserMedia的使用方法,成功和失败回调的调用还是相当简单,而约束对象这个我们没有细说,在这篇里我们来说说这个约束对象要如何传。
在之前的文章中我们有说到传到getUserMedia({约束},suc,err)中的第一个对象是约束,其中可以选择传入的参数有如下内容。
这里有一个文档说明了其中使用的参数。 文档
所有的约束在 “mandatory”和 “optional” 两个约束对象属性中都会生效。
mandatory和optional的传参方式不太一样
var constraints = {audio: false,
video: {
mandatory: { minAspectRatio: 1.333, maxAspectRatio: 1.334 },
optional:[
{ minFrameRate: 60 },
{ maxWidth: 640 },
{ maxHeigth: 480 }
]
}
};
mandatory直接使用对象传递,optional传入数组,数组中是属性对象。
- video: 是否接受视频流 true|false
- audio:时候接受音频流 true|false
- MinWidth: 视频流的最小宽度
- MaxWidth:视频流的最大宽度
- MinHeight:视频流的最小高度
- MaxHiehgt:视频流的最大高度
- MinAspectRatio:视频流的最小宽高比
- MaxAspectRatio:视频流的最大宽高比
- MinFramerate:视频流的最小帧速率
- maxFrameRate:最大帧率
比如我们想创建一个400*400的视频程序,每秒最小帧数10 最大帧数15,只接受视频的约束写成如下即可。
var constraints = {audio: false,
video: {
mandatory: {},
optional:[
{ minFrameRate: 10},
{ maxFrameRate: 15 },
{ minWidth: 400 },
{ minHeight: 400 },
{ maxWidth: 400 },
{ maxHeight: 400 }
]
}
};
效果如下
本来打算在这章加上关于getUserMedia的音频流处理,但是貌似不太贴和这个系列的内容,那就下一个关于这部分的简单介绍个演示,待到需要使用这部分功能的时候我们在来说明。