WebRTC
最后更新于:2022-04-01 23:54:38
## WebRTC
WebRTC(Web Real-Time Communication,网页实时通信),是一个支持网页浏览器进行实时语音对话或视频对话的API。
**1、getUserMedia**
要播放摄像头的影像,首先需要一个video标签:
```
```
获取摄像头影像主要是通过`navigator.getUserMedia`这个接口,这个接口的支持情况已经逐渐变好了([点击这里](http://caniuse.com/#search=getUserMedia)),不过,使用的时候还是要加上前缀的。
兼容代码:
```
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
```
语法:
```
navigator.getUserMedia(constraints, successCallback, errorCallback);
```
参数说明:
- constraints:Object类型,指定了请求使用媒体的类型
- succeCallback:启用成功时的函数,它传入一个参数,为视频流对象,可以进一步通过`window.URL.createObjectURL()`接口把视频流转换为对象URL。
- errorCallback:启动失败时的函数。它传入一个参数,为错误对象(chrome)或错误信息字符串(Firefox),可能值:
```
PERMISSION_DENIED:用户拒绝提供信息。
NOT_SUPPORTED_ERROR:浏览器不支持硬件设备。
MANDATORY_UNSATISFIED_ERROR:无法发现指定的硬件设备。
```
例如要启用视频设备(摄像头),可这样:
```
navigator.getUserMedia({
video: true
});
```
如果要同时启用视频设备和音频设备,可这样:
```
navigator.getUserMedia({
video: true,
audio: true
});
```
**1.1 获取摄像头完整实例**
```
```
当点击直播按钮时,电脑会提升用户是否允许使用摄像头,允许之后,网页上就可以实时显示摄像头影像了。如果不允许,就会触发错误事件。
**1.1.1 截图**
除了实时直播外,我们还可以做实时截图效果,这时我们需要利用`
';