Download - : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

Transcript
Page 1: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD.

www.huawei.com

Huawei Confidential

Security Level:

47pt

30pt

反白

:

FrutigerNext LT Medium

: Arial

47pt

黑体

28pt

反白

细黑体

2016/8/24

通信平台云

二次开发培训指导

Page 2: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 2

通信平台云会议组件对会议各个功能

的业务和UI进行分离设计,提供统一

的对外接口,满足其他产品对会议系

统的多样化定制需求。

本课程介绍会议组件的架构、原理、

功能、开发示例等内容。

Page 3: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 3

学习完此课程,您将会:

掌握会议组件的应用场景、原理和功能

掌握会议组件的二次开发方法

Page 4: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 4

第1章 会议组件应用场景

第2章 会议组件原理、功能

第3章 会议组件二次开发准备

第4章 会议组件二次开发流程

第5章 会议组件二次开发示例

Page 5: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

典型场景

各种平台通过集成通信平台云会议组件实现会议系统特有的功能特

性(包括屏幕/ 应用程序共享、文档/白板共享、音频、电话、视频

、文件传输、聊天),当前主要有以下几个用户场景:

eSpace Meeting通过集成会议组件实现完整的会议系统功能。

eSpace VTM通过集成会议组件实现多人视频,屏幕共享等会议功能。

eSpace CC通过集成会议组件实现实现远程控制等功能。

Page 5

Page 6: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 6

第1章 会议组件应用场景

第2章 会议组件原理、功能

第3章 会议组件二次开发准备

第4章 会议组件二次开发流程

第5章 会议组件二次开发示例

Page 7: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件设计原理

一、业务和UI分离

会议组件只关注功能模块的业务逻辑,不关心UI形态,UI由应用层实现

二、抽象业务能力

组件抽象业务的相关能力,业务形态可有上层根据能力自由组合

三、异步编程方式

组件采用异步编程方式,函数调用和消息回调分离,消息回调采用注册

消息回调函数实现。如下图所示。

Page 7

Page 8: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件架构

会议通信协议栈

音视频文档/白板共

享屏幕/程序共

接口层,提供C接口和Java接口(Android)

屏幕采集 文档格式 HME

渲染库(Windows/iOS/Mac/Android)

聊天 媒体共享

文档加载屏幕编解码

会议控制层(会议管理、人员管理、组件管理)

产品/ISV

Page 9: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件线程模型

线程模型一 线程模型二

调用者主线程 调用者主线程 组件线程

1. 组件工作在调用者主线程2. 所有回调也在主线程3. 其他线程调用都同步到主

线程

1. 组件工作在组件线程2. 所有回调在调用者主线程3. 所有调用都同步到组件线

1. 会议组件支持两种线程模型,Windows/iOS使用线程模型一,Android使用线程模型二

2. 所有对外接口实现了线程安全,应用层可在任意线程调用

3. 所有消息回调都在调用者的主线程,组件采用调用tup_conf_init接口的线程为主线程

同步调用

Page 10: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件内部各部件功能说明

Page 10

部件名称 功能说明

接口部件Windows和iOS平台采用C语言格式对外提供接口函数

Android平台提供JAR包方式

会控部件 会控管理、人员管理、组件管理

桌面共享部件 提供桌面共享,程序共享及远程控制功能

文档共享部件 提供文档共享功能,包括Office系列文档,PDF文档等

白板部件 提供白板功能

视频部件 提供多人视频功能

音频部件 提供多人音频功能

文件传输部件 提供一对一和一对多的文件传输功能

即时消息部件 提供公共即时消息,一对一即时消息及群组即时消息功能

Page 11: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件公有云鉴权

公有云上采用帐号和私钥进行鉴权,帐号和私钥在初始化时传入

Isv_Param param;

strncpy_s(param.isv_account, TC_MAX_ISV_ACCOUNT_LEN,”TestAccount”,

TC_MAX_ISV_ACCOUNT_LEN - 1);

trncpy_s(param..rsa_key, TC_MAX_RSA_KEY_LEN,”XXXXXXX”, TC_MAX_RSA_KEY_LEN -

1);

tup_conf_init_isv (TRUE,&param);

Page 11

Page 12: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 12

第1章 会议组件应用场景

第2章 会议组件原理、功能

第3章 会议组件二次开发准备

第4章 会议组件二次开发流程

第5章 会议组件二次开发示例

Page 13: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件二次开发前准备—基于Windows操作系统

1. Microsoft Visual Studio 2008

会议组件对外接口统一采用C语言风格。本文使用Microsoft Visual

Studio 2008中的MFC应用程序进行二次开发。也可以使用其它IDE或

语言进行二次开发。

2. 会议组件开发包,包括:

会议组件对外头文件(目录名为”inc”)

会议组件库文件(tuo_conf_sdk.lib接口库文件)

Page 13

Page 14: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 14

第1章 会议组件应用场景

第2章 会议组件原理、功能

第3章 会议组件二次开发准备

第4章 会议组件二次开发流程

第5章 会议组件二次开发示例

Page 15: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件二次开发—工程中添加组件

1. ISV工程中加入会议组件头文件路径。

2. 把会议组件库文件和第三方库文件复制到ISV工程输出目录中。

3. ISV工程中加入附加依赖库tup_conf_sdk.lib。

Page 15

Page 16: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件二次开发流程—组件API调用

Page 16

ISV应用层 组件层

2. 调用tup_conf_new()创建会议并注册组件回调消息入口

3. 调用tup_conf_join() 加入会议

回调消息CONF_MSG_ON_CONFERENCE_JOIN

6. 调用相关模块API

7.处理回调消息

创建并加入会议

6. 调用tup_conf_leave()离开会议

7. 调用tup_conf_release() 释放本地会议资源

4. 调用tup_conf_load_component() 加载业务模块

回调消息CONF_MSG_ON_COMPONENT_LOAD

5. 调用tup_conf_reg_component_callback()注册模块回调消息入口加载业务模块

业务功能实现

离开会议

1. 调用tup_conf_init()初始化SDK库初始化库

调用tup_conf_init_isv()初始化ISV信息

Page 17: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 17

第1章 会议组件应用场景

第2章 会议组件原理、功能

第3章 会议组件二次开发准备

第4章 会议组件二次开发流程

第5章 会议组件二次开发示例

Page 18: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件二次开发示例-Windows—打开视频

准备工作

1. 新建一个工程Video,并添加组件类库,配置正确

2. 创建一个对话框,用于显示视频

Page 18

Page 19: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件二次开发示例-Windows —打开视频

初始化SDK

tup_conf_new(false,NULL);

创建并加入会议

m_nHandle = tup_conf_new(OnMsgCallback, &m_confInfo,

CONF_OPTION_BASE);

tup_conf_join(m_nHandle);

加载视频组件并注册视频模块回调函数

tup_conf_load_component(m_nHandle,IID_COMPONENT_VIDEO);

tup_conf_reg_component_callback(m_nHandle,

IID_COMPONENT_VIDEO,OnMsgCallback);

说明:函数的使用说明请参考《eSpace Meeting V200R002C10会议终端组件_接口参考》。Page 19

Page 20: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件二次开发示例-Windows —打开视频

视频模块加载成功回调处理

视频组件加载成功后,会向ISV应用层发送CONF_MSG_ON_COMPONENT_LOAD

消息, ISV应用层收到这个消息后,调用视频模块相关API获取设备

信息并打开视频。

case CONF_MSG_ON_COMPONENT_LOAD: //组件加载回调消息

{

int iCount = tup_conf_video_get_devicecount(m_nHandle);

TC_DEVICE_INFO* pDeviceInfo = new TC_DEVICE_INFO[iCount];

tup_conf_video_get_deviceinfo(m_nHandle, pDeviceInfo);

tup_conf_video_open(m_nHandle,pDeviceInfo[0]._DeviceID,TRUE);

break;

}

Page 20

Page 21: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件ISV二次开发示例-Windows —打开视频

打开视频回调处理

视频打开成功后,组件会向ISV应用层发送COMPT_MSG_VIDEO_ON_SWITCH

消息, ISV应用层收到这个消息后,调用conf_video_attach把视频显

示在窗口,如图所示。

Page 21

Page 22: : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 35pt 32pt ) :18pt Page 2 通信平台云会议组件对会议各个功能

Thank youwww.huawei.com