Skip to content

在设备端工程中接入 TiRTC C SDK,并准备初始化代码骨架。

获取二进制库

先从下载 C SDK获取匹配的 C SDK。

不同平台的库文件名会有差异,但对外 C API 入口一致。以 Linux x86_64 标准包为例,解压后目录结构如下:

text
tirtc-c-sdk/
|-- include/
|   `-- tirtc/
|       |-- basedef.h
|       `-- tiRTC.h
`-- lib/
    |-- libTiRTC.a
    `-- libTiRTC.so

业务代码只需要包含 include/tirtc/tiRTC.hbasedef.htiRTC.h 依赖的公开头文件,需要和 tiRTC.h 一起保留在 include/tirtc/ 目录下。

在工程中引用

把 SDK 的 include/ 目录加入头文件搜索路径,然后链接包内提供的 TiRTC 入口库。

业务代码推荐这样包含头文件:

c
#include <tirtc/tiRTC.h>

Linux 标准包提供两种接入方式:

  • 静态接入:编译期链接 lib/libTiRTC.a
  • 动态接入:编译期链接 lib/libTiRTC.so,运行时确保程序能找到这个 .so 文件,例如放在系统库目录、程序约定的库目录,或配置 LD_LIBRARY_PATH / rpath。

其他设备平台包通常提供静态库,按静态链接接入即可。

初始化 SDK

TiRtcInit() 用来初始化 SDK 运行时,函数内部无网络交互,可以在设备连通互联网之前调用。

c
#include <signal.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

#include <tirtc/tiRTC.h>

static volatile sig_atomic_t g_should_exit = 0;

static void on_signal(int signo)
{
    (void)signo;
    g_should_exit = 1;
}

int main(int argc, char **argv)
{
    signal(SIGINT, on_signal);
    signal(SIGTERM, on_signal);

    if (TiRtcInit() != 0) {
        return 1;
    }

    while (!g_should_exit) {
        sleep(1);
    }

    TiRtcUninit();
    return 0;
}

下一步

完成 C SDK 引用和初始化后,继续参考建立与设备端的连接,完成 device_secret_keyclient_id 设置、TiRtcStart() 启动和客户端建连处理。

TiRTC 开发文档