集成 SDK 完成后,要想使用 SDK 的功能,还需要对 SDK 进行初始化操作。
请在 ZEGO 控制台 申请 SDK 初始化需要的 AppID 和 AppSign,获取 AppID 和 AppSign 指引 。
在windows上因为设备不可用的问题可能会导致不能正常使用推流功能,所以需要先检测一下用户当前的设备是否能正常运行。检测方法查看 设备管理 - 可用性检测。
导入SDK初始化的头文件:
#include "LiveRoom.h"
针对 2021-11-16 及之前在 ZEGO 控制台 创建的项目:
针对 2021-11-16 之后在 ZEGO 控制台 创建的项目:
示例代码如下:
// 当 App 集成完成后,再向 ZEGO 申请正式环境。
LIVEROOM::SetUseTestEnv(true); // 为 true 则说明开启测试环境,为 false 则说明使用正式环境
请注意:
- AppID 和 AppSign 由 ZEGO 分配给各 App。为了安全考虑,建议将 AppSign 存储在 App 的业务后台,使用时从后台获取。
- 调用
InitSDK
时,需要先将获取的 AppID 由字符串转为无符号整型数,AppSign 由字符串转为字节数组。
核心代码片段示例如下:
/** 初始化SDK
* g_dwAppID2 是获取的字符串 AppID 转换成的无符号整型数
* g_bufSignKey2 是获取的字符串 AppSign 转换成的字节数组
*/
LIVEROOM::InitSDK(g_dwAppID2, g_bufSignKey2, 32);
除上述设置之外,用户可根据需求,判断是否需要在初始化 SDK 同时, 开启其他功能。例如:外部渲染、外部采集、外部滤镜、软硬件编解码、开启流量控制等。
class MyAvSignal : public IRoomCallback
{
//.....
void OnInitSDK(int nError) override
{
if(nError == 0)
{
//初始化sdk完成。
}
else
{
// nError 非0 代表初始化sdk失败
// 具体错误码说明请查看<a> https://doc.zego.im/CN/5526.html </a>
}
}
}
当收到void OnInitSDK(int nError)
的回调后,nError为0表示初始化完成。
初始化完成后,开发者即可调用 SDK 相关接口,实现对应功能。
开发者如果不需要再继续使用 SDK 可以调用如下函数释放 SDK。
注意:释放 SDK 后需要重新初始化 SDK 才能使用。
接口原型:
ZEGO_API bool ZEGO::LIVEROOM::UnInitSDK()
请开发者注意,SDK的每个回调都在一个独立且唯一工作线程中抛出(下面称为SDK主线程),开发者接收到回调之后务必需要切换线程,不能在SDK回调里再调用SDK的其它接口函数(需要切线程之后才能调),保证不阻塞SDK主线程。否则,可能会发生SDK主线程卡死等异常问题。
方法 | 描述 |
---|---|
ZEGO::LIVEROOM::InitSDK | 初始化 SDK |
ZEGO::LIVEROOM::SetUseTestEnv | 测试环境开关 |
ZEGO::LIVEROOM::SetVerbose | 打开调试信息开关 |
ZEGO::LIVEROOM::UnInitSDK | 释放 SDK |
完成了初始化 SDK 的操作后,可以使用 ZEGO SDK 依次完成如下功能来实现基础的通话或者直播。
联系我们
文档反馈