年后回来,因为新项目的需求,开始了解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,并通过回调方法来
时间: 2024-10-15 02:45:18