在设备端工程中接入 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.h。basedef.h 是 tiRTC.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_key、client_id 设置、TiRtcStart() 启动和客户端建连处理。