一、禁用一对一的视频
1.1含有video:true的共有11项,
分布在三个文件中,RTCMultiConnection.js(5个),Scalable-Broadcast.js(1个),dist/rmc3.js(5个),全部改成video:false。
二、webrtc研究
2.1 多设备处理
目前仅支持谷歌浏览器,运行如下函数:
运行结果:
发现有两个摄像头,一个麦克风,点击上图中黄色链接:
由此可知:不支持火狐、IE、Safari、Web Developers。
在其他浏览器中,就没嵌入这个接口函数,报错如下:
2.2拍照室
拍照室用到Canvas,Canvas是一系列在屏幕上绘制线条、图形和图片的API,因其可以制作游戏并且实现其他交互作用,从而在web平台上流行起来。
代码如下:
结果如下:
按下Capture:
再次单击Capture:
变色代码:
浏览器适配代码:
注:由上图可知,捕捉的还是有些误差。不过,大体上能说的过去。
2.3RTCPeerConnection
实时传输要求双方间有快速的连接速度,需要将音频和视频都放在同一帧中,并以每秒40到60帧的速度发送给另一个用户,以此来获得较好的效果。在这个过程中,允许部分数据帧丢失,因为目标是及时传送最新的数据帧,不是确保每一帧都不丢失。
因为大脑的特性,丢失个别帧我们感觉不到,不会影响视听。
2.4 webrtc应用的传输协议
用的是用户数据报协议(UserDatagram Protocol,UDP),但目前大多数网络都建立在TCP上,TCP:Transmission Control Protocol(传输控制协议)优点如下:
a. 任何发出的数据都有送达的确认
b. 任何未到达接收端的数据会被重传并停止发送更多的数据
c. 数据是惟一的,接收端不会有重复的数据
这些优点可以保证网络数据的质量,但并不适合所有网络,比方多人游戏,如果每一帧都要传过去,可能会卡。所以,webrtc选择了UDP作为传输协议,TCP作为协助协议。UDP特性如下:
a. 它不保证数据发送或接收的先后顺序。
b. 它不保证每一个数据包都能够传送到接收端;一些数据可能半路丢失。
c. 它不跟踪每一个数据包的状态,即使接收端有数据丢失也会继续传输。
但遗憾的是并不是所有网络都支持UDP传输协议,比方说:企业级防火墙的大型网络会完全阻止UDP,对此,webrtc也做了一些策略。
2.5WebRTC API
建立点到点连接,涉及的主要技术如下:
a. RTCPeerConnection对象
b. 信号传递和交涉
c. 会话描述协议(SDP)
d. 交互式连接建立(ICE)
2016年9月18日星期日
818字金牌