本页将介绍如何使用 C++ SDK 进行集成多人音视频通话到你的项目之中。在开始之前,请确认您已经完成相应的准备工作。
集成SDK之前请首先在QT Creator创建您的项目,如果您已有C++工程,可直接集成SDK。
音视频通话的API调用时序图如下:
在调用API之前需要进行初始化,您需要在该步骤中填入项目的enterpriseId,如果您已经完成准备工作中的内容,则可以从管理平台获取到enterpriseId。 调用NemoSDK.h中的startup方法即可初始化SDK, 可参考demo中的NemoSdkAdaptor.cpp:
/* 初始化并启动SDK */
virtual bool startup(INemoSDKCallbacks *cb, const SDKConfigs& sdkConfigs) = 0;
/* 停止SDK,关闭应用前调用该方法 */
virtual void shutdown() = 0; // tear down all internal resources
/* SDK 配置项 */
struct SDKConfigs
{
XYString cloudServer = ""; /* 云服务地址, 私有云地址非标端口需要带端口 i.e. private.cloud.com:9443, 123.123.123.123:9773 */
XYString openapiServer = ""; /* 开放平台地址 */
XYString openapiToken = ""; /* 开放平台口令 */
XYString logFolder = ""; /* 日志路径 */
XYString clientId = ""; /* 应用clientId */
XYString clientSecret = ""; /* 应用clientSecret */
SDKSoftSysType sysType; /* 终端类型(会根据终端类型做性能优化) */
bool enablePushVideo = true; /* 使能SDK主动回调裸流给用户 */
bool enableBulkRoster = false; /* 暂未使用 */
XYString mediaDumpPath; /* dump调试文件路径 */
};
3.3.0以前版本只支持旧版鉴权方式,3.3.0(+)版本支持新旧鉴权。
新版本SDK鉴权兼容:
1.旧版本鉴权初始化只需要设置企业ID,访问公有云服务时设置服务器地址为:cloud.xylink.com
2.新版本鉴权初始化需要设置企业ID、clientId、clientSecret参数,访问公有云服务时设置服务器地址为:sdkapi.xylink.com
SDK登录方法定义:
/*
* 使用第三方账户登录
* extID为企业标志,联系小鱼销售人员获取
* extUserId为三方用户ID,同一企业不能相同
* displayName 参数不能包含以下字符
* ';' ':' ',' '=' '-' '(' ')' '[' ']' '{' '}' '@' '#' '*' '\\' '\r' '\n' '\t'
*/
virtual void loginExternalAccount(const char* extID, const char* extUserId, const char* displayName) = 0;
登录成功之后,可以调用makeCall方法发起呼叫,方法定义:
/*
* 发起呼叫
* 如果 displayName 为空的话,就使用 loginExternalAccount
* 时传入的displayName。 如果不为空的话,就使用这个新的。
*
* isVideoMute: 关闭视频入会
* isAudioMute: 关闭音频入会
* meetingID: 预约会议id
*/
virtual void makeCall(const char *number, const char *meetingPwd,
SDKCallMode mode, const char *displayName = "",
bool isVideoMute = false, bool isAudioMute = false,
const char *meetingID = "") = 0;
您可以根据业务场景选择挂断呼叫的时机,挂断的方法定义:
/* 挂断呼叫 */
virtual void hangup() = 0;