SDK 初始化
更新时间:2026-09-22 13:28:09
完成工程配置后,将 SDK 包内 config.ini 复制到可执行文件工作目录,并准备控制台分配的 App Key / App Secret。请在获得用户同意后再初始化;调用其他 API 前必须先 Initialize,未 Uninitialize 前不要重复初始化。
接口细节见接口说明。
调用顺序
Initialize:初始化 SDK。CreateRtcxPcApi:创建 API 实例并绑定事件回调。Login/ThirdLogin/LoginLan:三选一,同一实例同时只使用一种登录方式。- 调用设备、播放等业务接口。
Logout。- 将
IRtcxPcApi::Ptr与回调对象置空。 Uninitialize。不要在 SDK 回调中调用。
初始化参数
InitParam 完整定义见接口说明。
| 字段 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| cfgFileName | std::string | 否 | "config.ini" | 配置文件路径,相对工作目录或绝对路径 |
| appKey | std::string | 是 | 空 | 平台分配的 App Key |
| appSecret | std::string | 是 | 空 | 平台分配的 App Secret |
配置文件
将 SDK 包 bin/config.ini 复制到工作目录。Initialize 按 cfgFileName 加载该文件。
[dns]
domain = https://dnms.iotrtc.cn
[rtc]
stunUrl = stun:stun.iotrtc.cn:3478
[log]
level = info
console = false
file = true
path = logs/
filename = sdk.log
初始化示例
Windows 与 Linux 初始化代码相同。
#include <memory>
#include <string>
#include "IRtcxPcApi.h"
using namespace rtx::pcsdk;
class MyEvtHandler : public IRtcxPcEvtHandler
{
};
int main()
{
InitParam param;
param.cfgFileName = "config.ini";
param.appKey = "yourAppKey";
param.appSecret = "yourAppSecret";
if (IRtcxPcApi::Initialize(param) != RTCX_PC_SUCCESS) {
return -1;
}
std::string version;
IRtcxPcApi::GetVersion(version);
std::shared_ptr<MyEvtHandler> handler = std::make_shared<MyEvtHandler>();
IRtcxPcApi::Ptr pcapi = IRtcxPcApi::CreateRtcxPcApi(handler);
if (!pcapi) {
IRtcxPcApi::Uninitialize();
return -1;
}
std::string errorMessage;
if (pcapi->Login("account", "credential", &errorMessage) != RTCX_PC_SUCCESS) {
pcapi.reset();
handler.reset();
IRtcxPcApi::Uninitialize();
return -1;
}
pcapi->Logout();
pcapi.reset();
handler.reset();
IRtcxPcApi::Uninitialize();
return 0;
}
Initialize / Uninitialize / GetVersion / CreateRtcxPcApi 的返回值与调用时机见接口说明 · 初始化相关。登录方式见用户账号开发指南。Qt 示例工程见Demo 使用说明。
平台说明
初始化接口在 Windows 与 Linux 上一致。差异在播放:
- Windows:
StartPlay传入窗口句柄。 - Linux:暂不内置渲染,
hWnd传空,通过OnEncodedVideoData/OnEncodedAudioData取流。
详见接口说明。