WebRTC学习之 Intel® Collaboration Suite for WebRTC源码流程解读

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebRTC学习之 Intel® Collaboration Suite for WebRTC源码流程解读相关的知识,希望对你有一定的参考价值。

年后回来,因为新项目的需求,开始了解WebRTC相关的知识。目前接触的是 Intel? Collaboration Suite for WebRTC。刚开始看SDK发现很多概念是我目前不知道的,于是恶补了一周基本的网络相关的知识。再来看Demo和Jar包里面的源码,对其代码逻辑的理解更深一步了。下面从代码层面分模块对Demo的设计和使用进行总结:

首先声明一下核心的类对象:

private ConferenceClient mRoom;

无论是登录还是发布、订阅Stream,我们都需要mRoom来进行相关的逻辑的控制。

 

初始化Conference(会议室)

相关代码段:

ConferenceClientConfiguration config = new ConferenceClientConfiguration();
List<IceServer> iceServers = new ArrayList<IceServer>();
iceServers.add(new IceServer(stunAddr));
//iceServers.add(new IceServer(turnAddrTCP, "woogeen", "master"));
//iceServers.add(new IceServer(turnAddrUDP, "woogeen", "master"));
try {
    config.setIceServers(iceServers);
} catch (WoogeenException e1) {
    e1.printStackTrace();
}
mRoom = new ConferenceClient(config);
mRoom.addObserver(this);

  

在初始化Conference(会议室)的时候,需要设置IceServer作为创建之前的配置信息,并设置本类为观察者,用来接收会议室相关的状态回调。配置IceServer的用途是为了创建交互式连接,ICE是一种标准的穿透协议,利用STUN和TURN服务器来帮助建立连接。

 

 

 

 

加入Conference(会议室)

1. 加入会议室的API代码:

mRoom.join(tokenString, /*options,*/new ActionCallback<User>() {

    @Override
    public void onSuccess(User myself) {
        // 链接成功,加入房间成功
        Log.d(TAG, "My client Id: " + myself.getId());
    }

    @Override
    public void onFailure(final WoogeenException e) {
        // 链接失败,加入房间失败
    }
});

可以看出来,我们在代码中只需要调用mRoom的join方法,将之前链接,就可以加入会议室Room,并通过回调方法来 

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于WebRTC学习之 Intel® Collaboration Suite for WebRTC源码流程解读的主要内容,如果未能解决你的问题,请参考以下文章

WebRTC学习之九:摄像头的捕捉和显示

WebRTC学习之九:摄像头的捕捉和显示

WebRTC学习之ICE深入理解

深度学习之intel NCS2算力棒开发笔记

深度学习之openvino预训练模型测试

英特尔Intel® Arria® 10 FPGA加速器设计