第8篇 WebRTC一对一IOS端研究(一)
来源:互联网 发布:美丽说和淘宝的关系 编辑:程序博客网 时间:2024/05/22 22:46
关键词:WebRTC三个主要接口,MediaStream,RTCDataChannel
一、WebRTC一对一
1.1 WebRTC三个主要接口
1)MediaStream:通过MediaStream的API能够通过设备的摄像头及话筒获得视频、音频的同步流
2)RTCPeerConnection:RTCPeerConnection是WebRTC用于构建点对点之间稳定、高效的流传输的组件
3)RTCDataChannel:RTCDataChannel使得浏览器之间(点对点)建立一个高吞吐量、低延时的信道,用于传输任意数据
1.2 分别对上述三个接口进行简单介绍
1)MediaStream(getUserMedia)
MediaStream API为WebRTC提供了从设备的摄像头、话筒获取视频、音频流数据的功能。
2)RTCPeerConnection
WebRTC使用RTCPeerConnection来在浏览器之间传递流数据,这个流数据通道是点对点的,不需要经过服务器进行中转。但是这并不意味着我们能抛弃服务器,我们仍然需要它来为我们传递信令(signaling)来建立这个信道。WebRTC没有定义用于建立信道的信令的协议:信令并不是RTCPeerConnection API的一部分。
这些session信息的交换应该在点对点的流传输之前就全部完成,一个大致的架构图如下:
注:通过服务器建立信道
这里再次重申,就算WebRTC提供浏览器之间的点对点信道进行数据传输,但是建立这个信道,必须有服务器的参与。WebRTC需要服务器对其进行四方面的功能支持:
a)用户发现以及通信
b)信令传输
c)NAT/防火墙穿越
d)如果点对点通信建立失败,可以作为中转服务器
注:在RTCPeeConnection中,使用ICE框架来保证RTCPeerConnection能实现NAT穿越
两个兼容:
//兼容浏览器的getUserMedia写法
var getUserMedia = (navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
//兼容浏览器的PeerConnection写法
var PeerConnection = (window.PeerConnection ||
window.webkitPeerConnection00||
window.webkitRTCPeerConnection||
window.mozRTCPeerConnection);
3)RTCDataChannel
既然能建立点对点的信道来传递实时的视频、音频数据流,为什么不能用这个信道传一点其他数据呢?RTCDataChannel API就是用来干这个的,基于它我们可以在浏览器之间传输任意数据。DataChannel是建立在PeerConnection上的,不能单独使用。
2016年11月21日星期一
- 第8篇 WebRTC一对一IOS端研究(一)
- 第89篇 webrtc一对一IOS端研究(二)
- 第88篇 webrtc一对一IOS端研究(一)及php及JS
- 第86篇 webrtc一对一学生端研究(一)
- 第77篇 webrtc一对一研究(六)及php
- 第79篇 webrtc一对一研究(八)及jQuery
- 第80篇 webrtc一对一研究(九)及php
- 第82篇 webrtc一对一研究(十)及php
- 第83篇 webrtc一对一研究(十一)及php
- 第84篇 webrtc一对一研究(十二)
- 第85篇 webrtc一对一研究(十三)
- 第87篇 webrtc一对一学生端研究(二)
- 第75篇 webrtc一对一研究(四)
- 第13篇研究webrtc官网(二)ninja安装(一)及安卓一对一测试问题
- 第74篇 webrtc一对一研究(三)及php及windows/office激活
- 第76篇 webrtc一对一研究(五)及php及jQuery
- 第78篇 webrtc一对一研究(七)及php及jQuery
- 第81篇 webrtc一对一研究(十)及php及jQuery
- window对象
- JVM字节码执行引擎
- #早安,努力#11.24
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.1 使用GLSurfaceView和MediaPlayer播放一个平面视频(上)
- JAVA动态代理模式(从现实生活角度理解代码原理)
- 第8篇 WebRTC一对一IOS端研究(一)
- history对象和location对象
- Java之构造函数
- screen对象和Event对象
- DNS领域服务器搭建
- Hadoop学习笔记(三)——HDFS应用程序开发
- C语言指针——一个小问题
- bootstrap table 实例
- 基于bootstrap的轮播广告页,带图片和文字