Android音视频开发之-WebRTC技术实践,2024大厂前端知识点总结+面试题解析

本文介绍了如何在Node.js环境中安装WebRTC库,通过npminstall,以及详细描述了从添加依赖、初始化PeerConnectionFactory到建立P2P连接的实现流程,包括信令交换和设置Candidate。作者还分享了如何通过信令服务器进行端到端通信,并推荐了一份前端开发者的学习资源包。
摘要由CSDN通过智能技术生成
  • 安装Node.js

  • 进入项目根目录,命令行:npm install

  • 命令行:node app.js

  • 打开浏览器输入127.0.0.1:3000,见到WebRtcServer标题,服务器ready

1、下载后直接AndroidStudio打开

2、将WebRtcClient.java类中的mSocketAddress变量改成你服务器的ip端口3000

3、安装后启动App,如果服务器log显示-- xxxxx joined --证明客户端已连上服务器

4、至少两个客户端连接到服务器之后,其中一端点击init开始连接

如果你已经成功跑通了Demo,那么恭喜你已经成功了一半,接下来我们分析下实现流程。

实现流程

一、添加WebRTC库依赖

compile ‘org.webrtc:google-webrtc:1.0.+’

二、初始化核心类PeerConnectionFactory

PeerConnectionFactory.initialize(PeerConnectionFactory

.InitializationOptions

.builder(this)

.createInitializationOptions());

三、创建PeerConnection对象

peerConnection = factory.createPeerConnection(

iceServers, //ICE服务器列表

constraints, //MediaConstraints

this); //Context

四、建立P2P连接通道

WebRTC是基于P2P的,但在端与端之间的连接通道还没建立起来之前,我们需要通过一个信令服务器为端与端之间传递信令建立通道。信令服务器要做的东西很简单,就是将一端的信息透传给另一端,步骤如下(以Demo为例):我们启动A端与B端,通过SocketIO连接到信令服务器,我们以A作为发送端,B为响应端。

信令交换

  • A向服务器发出init请求

  • 服务器将A的init请求转发给连接上服务器的其他端

  • B收到init请求后,调用peerConnection.createOffer()方法创建一个包含SDP的offer信令

  • offer信令创建成功后会调用SdpObserver监听中的onCreateSuccess()响应函数,在此处B通过peerConnection.setLocalDescription()方法将SDP赋予自己的PeerConnection对象,同时将offer信令发送给服务器

服务器将offer信令转发给A端

  • A收到offer信令后,调用peerConnection.setRemoteDescription()方法将B发过来的SDP赋予自己的PeerConnection对象,并调用peerConnection.createAnswer()方法创建一个answer信令

answer信令创建成功后同样会调用SdpObserver监听中的onCreateSuccess()响应函数,在此处A同样通过peerConnection.setLocalDescription方法将SDP赋予自己的PeerConnection对象,同时将answer信令发送给服务器

  • 服务器将answer信令转发给B端

B收到A的answer信令后,利用peerConnection.setRemoteDescription()方法将A发过来的SDP赋予自己的PeerConnection对象

  • 设置Candidate

PeerConnection.Observer监听会调用onIceCandidate()响应函数并提供IceCandidate对象。然后将IceCandidate对象组成candidate信令发送给服务器

  • 服务器将candidate信令转发给连接上服务器的其他端

收到candidate信令后调用peerConnection.addIceCandidate()将IceCandidate赋予自己的PeerConnection对象

至此Peer-to-Peer的连接已经建立起来了

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频**

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-4kmXwvDt-1710869017975)]

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值