华为已经有着超过20年的视频会议产品研发经验,拥有1000多项视频会议、音视频相关的国际和国内专利技术。华为云会议基于全开放的产品定位,将华为云会议的所有产品能力都开放给伙伴,伙伴可以通过集成华为云会议SDK,拥有与华为同等的音视频会议产品能力,然后在自己擅长的领域进行广泛应用,满足教育、医疗、政府、金融、交通等各行业的需求。
本文介绍下如何通过仅24行代码,就将华为近30年音视频领域探索的结晶集成到您自己的应用中。
华为云会议开发性初了解:华为云会议从服务端和终端两个方面开放了接口。服务端已REST API的方式开放,终端以SDK的方式开放。
华为云会议当前已经提供16类150个左右的接口,涵盖了会议管理、会议控制、云会议室管理、企业管理、用户管理、终端管理等会议业务涉及的方方面面。基于这些REST API您可以将华为云会议的调度管理能力集成到自己的业务系统中。
这些REST API都是无状态的接口,不涉及到复杂的接口组合的问题,可以根据自己的业务需要选择对应接口调用即可。接口的详细说明请参考华为云会议帮助中心上的《服务端API参考》(https://support.huaweicloud.com/api-meeting/meeting_21_0202.html)。
在华为云的API Explorer
(https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=Meeting)上可以直接调试这些REST API,不再需要使用postman或者CURL命令。
为了进一步简化后台在Java和Python中调用这些接口的实现难度,我们还对这些API接口封装了Java和Python的函数接口,可以从华为云SDK中心(https://sdkcenter.developer.huaweicloud.com/)下载华为云会议的服务端SDK。
本文余下章节主要介绍华为云会议终端侧的SDK。
华为云会议终端SDK介绍会议终端侧由于要涉及用户界面、终端外设、音视频媒体、会议流程等很多方面,集成难度上与服务端集成相比要复杂不少。
华为云会议的终端SDK将处理最复杂的音视频媒体、外设管理全部封装起来,为您提供了带会议UI控件的SDK,您也不用关注具体的会议流程。只需要调用大约30行代码调用10个接口即可完成华为云会议终端音视频能力的集成。
华为云会议提供Android、iOS和Windows平台的终端SDK,Mac平台的SDK也即将发布。SDK的详细介绍请参考华为云会议帮助中心上的《客户端SDK参考》(https://support.huaweicloud.com/sdkreference-meeting/meeting_22_0001.html)。
终端SDK提供的能力包括:
1、 视频会议
2、 数据共享
3、 点对点通话
华为云会议终端SDK在简化开发难度的基础上,兼顾了灵活性。会议终端按钮和菜单可以自定义;联系人也可以自定义。
基于华为云会议SDK的开发流程介绍开发流程介绍:
步骤1:创建企业。需要有华为云会议企业管理员帐号后,才能进行二次开发。参考《开发指南》中的“开发前准备”(https://support.huaweicloud.com/devg-meeting/meeting_20_0002.html)。
步骤2:下载SDK。下载地址:https://support.huaweicloud.com/sdkreference-meeting/meeting_22_0002.html。
步骤3:学习《客户端SDK参考》。学习地址:https://support.huaweicloud.com/sdkreference-meeting/meeting_22_0001.html。
步骤4:根据接口文档将SDK集成到您自己的App中。
步骤5:调试。
步骤6:发布。
如何基于华为云会议Windows SDK开发一个自己的会议客户端?下面以Windows平台的终端SDK为例,说明如何将华为云会议的终端侧能力集成到您自己的App中。
1****、初始化示例代码
hwmsdkagent::HwmInitInfo initParam;
strncpy_s(initParam.appId, "hwm_ui_demo", HWM_MAX_APPID_LEN);
strncpy_s(initParam.exePath, "D:\demo\SDK", HWM_MAX_FILE_PATH_LEN);
initParam.notify = notifyObj;
initParam.callback = callbackObj;
//调用初始化接口
int ret = hwmsdkagent::Init(&initParam);
//初始化回调函数
{
//初始化成功后的处理
}
2****、登录示例代码
hwmsdkagent::HwmLoginInfo loginParam;
strncpy_s(loginParam.accountAndPasswordAuthInfo.account, "139571854984
", HWM_MAX_ACCOUNT_LEN);
strncpy_s(loginParam.accountAndPasswordAuthInfo.password, "Change_Me"
, HWM_MAX_PASSWORD_LEN);
loginParam.authType = hwmsdkagent::HWM_AUTH_TYPE_ACCOUNT_AND_PASSWORD;
//调用登录接口
int ret = hwmsdkagent::Login(&loginParam);
//登录回调函数
void demoCallbackProc::OnLoginResult(hwmsdk::HwmErrCode ret, const char* msg)
{
//登录成功后的处理
}
3****、创建会议例代码
hwmsdkagent::HwmCreateConfInfo data;
//设置会议主题
strncpy_s(data.subject, CTools::UNICODE2UTF(CString("我的会议")), HWM_MAX_SUBJECT_LEN);
//设置会议类型
data.mediaType = hwmsdkagent::HWM_VIDEO_AND_DATA
//设置会议是否需要来宾密码
data.needPassword = true;
//调用创会接口
int ret = hwmsdkagent::CreateConf(&data, NULL, 0);
//创会回调函数
void demoCallbackProc::OnCreateConfResult(hwmsdk::HwmErrCode ret, const char* msg)
{
//创会成功后的处理
}
//会议状态通知
void demoNotifyProc::OnConfInfo(HwmConfInfo *confInfo)
{
//根据会议状态处理自己的业务逻辑
}
创建会议成功后,创会者自动就加入会议了。
4****、加入会议例代码
strncpy_s(data.confId,"989156631", HWM_MAX_CONF_ID_LEN);
strncpy_s(data.password, "807766", HWM_MAX_PASSWORD_LEN);
strncpy_s(data.name, CTools::UNICODE2UTF(CString("杭州会场")), HWM_MAX_DISPLAY_NAME_LEN);
int ret = hwmsdkagent::JoinConfById(&data);
//入会回调函数
void demoCallbackProc::OnJoinConfByIdResult(hwmsdk::HwmErrCode ret, const char* msg)
{
//入会成功后的处理
}
调用上述4个接口,并处理6个回调函数,大约30行左右的代码(不含App本身的业务代码和非会中界面代码),即可集成华为云会议的Windows SDK。
登录界面(仅Demo,实际由您的App提供):
创建会议和加入会议界面(仅Demo,实际由您的App提供):
会中界面(SDK提供):
通过本文,你是否对华为云会议开放性有了一定了解呢?
本文由华为云发布。