跳到主要内容

SDK 初始化

更新时间:2026-09-22 13:28:09

完成工程配置后,将 SDK 包内 config.ini 复制到可执行文件工作目录,并准备控制台分配的 App Key / App Secret。请在获得用户同意后再初始化;调用其他 API 前必须先 Initialize,未 Uninitialize 前不要重复初始化。

接口细节见接口说明。


调用顺序​

  1. Initialize:初始化 SDK。
  2. CreateRtcxPcApi:创建 API 实例并绑定事件回调。
  3. Login / ThirdLogin / LoginLan:三选一,同一实例同时只使用一种登录方式。
  4. 调用设备、播放等业务接口。
  5. Logout。
  6. 将 IRtcxPcApi::Ptr 与回调对象置空。
  7. Uninitialize。不要在 SDK 回调中调用。

初始化参数​

InitParam 完整定义见接口说明。

字段类型必选默认值说明
cfgFileNamestd::string否"config.ini"配置文件路径,相对工作目录或绝对路径
appKeystd::string是空平台分配的 App Key
appSecretstd::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 取流。

详见接口说明。