当前位置: 代码迷 >> 综合 >> 第42篇 WebRTC(五)
  详细解决方案

第42篇 WebRTC(五)

热度:25   发布时间:2024-01-12 12:41:29.0

一、禁用一对一的视频

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字金牌