: Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI...

Post on 26-Apr-2020

91 views 0 download

Transcript of : Arial FrutigerNext LT Medium 通信平台云 二次开发培训指导 · 2019-07-18 · HUAWEI...

HUAWEI TECHNOLOGIES CO., LTD.

www.huawei.com

Huawei Confidential

Security Level:

47pt

30pt

反白

:

FrutigerNext LT Medium

: Arial

47pt

黑体

28pt

反白

细黑体

2016/8/24

通信平台云

二次开发培训指导

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 2

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

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

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

统的多样化定制需求。

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

功能、开发示例等内容。

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 3

学习完此课程,您将会:

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 4

第1章 会议组件应用场景

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

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

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

典型场景

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

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

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

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

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

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

Page 5

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 6

第1章 会议组件应用场景

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

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

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件设计原理

一、业务和UI分离

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

二、抽象业务能力

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

三、异步编程方式

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

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

Page 7

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件架构

会议通信协议栈

音视频文档/白板共

享屏幕/程序共

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

屏幕采集 文档格式 HME

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

聊天 媒体共享

文档加载屏幕编解码

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

产品/ISV

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

会议组件线程模型

线程模型一 线程模型二

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

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

线程

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

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

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

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

同步调用

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

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

Page 10

部件名称 功能说明

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

Android平台提供JAR包方式

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

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

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

白板部件 提供白板功能

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

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

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

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 12

第1章 会议组件应用场景

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

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

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

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 14

第1章 会议组件应用场景

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

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

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

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

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

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

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

Page 15

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信息

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

Page 17

第1章 会议组件应用场景

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

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

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

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

准备工作

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

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

Page 18

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

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

HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential

35pt

32pt

) :18pt

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

打开视频回调处理

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

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

示在窗口,如图所示。

Page 21

Thank youwww.huawei.com