WebRTC音视频开发读书笔记(四)

WebRTC中,连接是核心内容,通过RTCPeerConnection接口可以将本地流MediaStream发送至远端,同时也可以远端媒体发送至本地,从而建立对等连接。本地与远端之间进行媒体协商及网络协商成功后,将本地媒体流发送到远端的过程称为连接建立。

七、建立连接

1、RTCConnection

RTCPeerConnection简称PC对象,即连接对象,本地为Local对象,远端为Remote对象,主要有以下API,如表所示:

2、连接建立

术语:

        Peer-A  : 简写为 A ,即本地

        Peer-B : 简写为 B  即远端

        RTCPeerConnection :简写为PC    

        RTCPeerConnection连接A端即为PC-A,连接B端即为PC-B

连接过程:
(1)A 获取媒体流MediaStream

代码如下:

navigator.mediaDevices.getUserMedia
(2) A(生成PC-A对象

RTCPeerConnection接口代表一个由本地计算机至远端的WebRTC连接。该接口提供了创建、保持、监控、关闭连接的方法,代码如下:

//可选参数包括ICE服务器等
pc=new RTCPeerConnection([RTCConfiguration dictionary])

 ICE服务器的设置如下所示:

 //设置ICE Server,使用Google服务器
    let configuration = { "iceServers": [{ "url": "stun:stun.l.google.com:19302" }] };
(3) A将流加入PC-A

代码如下:

//该方法已经不推荐使用,推荐使用addTrack方法
pc.addStream(stream);


//加入轨道

/循环迭代本地流的所有轨道
localStream.getTracks().forEach((track) => {
/把音视频轨道添加到连接里去
     PC.addTrack(track, stream);
  });
   (4)A创建提议Offer

       PC接口的CreateOffer()方法启动创建一个SDP offer ,目的是启动一个新的WebRTC去连接远程端点。代码如下:

offer=await pc.createOffer()
(5) 设置本地描述

       A 创建提议Offer成功后,会生成RTCSessionDescription对象,然后调用PC-A的setLocalDescription方法设置本地描述,代码如下:

await pc.setLocalDescription(desc)
        (6)   A将Offer发送给B

        A将Offer信息发送给B, 通常需要架设一个信令服务器转发Offer数据。WebSocket是一种常规的实现方式。

     (7)B生成PC-B对象

        B端也要生成一个RTCPeerC

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值