WebRTC有以下三个API:
MediaStream取得数据流,比如从摄像头和手机中获取。
RTCPeerConnection音频和视频通话,设备加密和带宽管理。
MediaStream (别名 getUserMedia)
一个 MediaStream 对象可以被扩展为表示一段或者是向远端节点发送的数据流或者是从远端节点接受的数据量,代表媒体数据流的同步。
每个MediaStream都有一个输入,这个输入可以理解成MediaStream生成的一个导航器。getUserMedia()可以传输视频元素或者是RTCPeerConnection。
getUserMedia()方法有三个参数:
一个 约束对象
一个成功的回调,如果成功会回传一个MediaStream
一个失败的回调,如果失败会回传一个error对象。
每个MediaStream都有一个标签,getVedeoTracks()和getAudioTracks()方法会回传一个MediaStreamTracks对象的数组。一个MediaStream可以包含零个或者多个MediaStreamTrack 对象. 例如,getVideoTracks()会返回一个MediaStreamTrack对象的数组, 这个数组代表从摄像头得到的数据流。每个MediaStreamTrack都有一个类型 ('video' 或 'audio'), 和一个标签(代表一个或多个频道的音频或视频)。
补充:约束用来设置 getUserMedia()和RTCPeerConnection addStream() 这些视频的流的分辨率。 约束的实现是为了制约例如视频高度和宽度的比例、帧率、和正反摄像头模式等等……getUserMedia约束在浏览器所有选项卡影响约束后完成后才设置。
RTCPeerConnection
RTCPeerConnection是是WebRTC的组件,用来解决数据流通信的稳定性和高效性。
在现在的世界里,WebRTC需要服务器,但是服务器配置非常简单,步骤如下:
1、用户找到对方并交换双信息,比如名字。
2、WebRTC客户端应用交换网络信息。
3、两个端交换多媒体数据信息。
4、WebRTC客户端遍历NAT网关和防火墙。
WebRTC需要四个类型的服务器端功能:
1、用户连接和通信
2、信号量
3、NAT/防火墙转发
4、如果通信失败再次发送
RTCDataChannel
像音频和视频一样,WebRTC同时也支持其它类型数据的实时通信。RTCDataChannel API提供低延时和高吞吐量的点对点地交换数据。
参考文献:http://www.gbtags.com/gb/share/3909.htm
http://www.cnblogs.com/lingyunhu/p/4004528.html