> 本文是《BK7258 适配 LiveKit 实战》系列第 1 篇。  

> 文章基于真实工程代码,聚焦可复现的迁移路径与调试方法。  

>  BK7258 开发基于xiaozhi 工程,移植esp32 livekit 到工程下。

---

## 1. 为什么先讲架构

BK7258 适配 LiveKit 的第一步不是改代码,而是先明确“哪里该改、哪里不要改”。  

---

## 2. 四层模块划分(基于xiaozhi 工程)

### 2.1 应用与系统编排层

- 文件位置:main 目录下 app_main.c;职责:系统入口、板级初始化、事件绑定

- 文件位置:main 目录下 dialog_component -> system_manager 目录中的 system_manager.c;职责:系统状态机、事件总线

### 2.2 设备与业务能力层

- 文件位置:main 目录下 dialog_component -> net_config 目录中的 net_config.c;职责:配网、网络状态事件

### 2.3 协议适配层

- 文件位置:main 目录下 dialog_component -> protocols 目录中的 protocol_livekit.c;职责:LiveKit 接口封装

- 文件位置:main 目录下 example.c;职责:Join 与 Connect 示例入口

### 2.4 LiveKit SDK 核心层

- 文件位置:components -> livekit -> core 目录中的 livekit.c;职责:Room API(create、connect、destroy)

- 文件位置:components -> livekit -> core 目录中的 engine.c;职责:连接状态机、协商、重连、媒体收发

- 文件位置:components -> livekit -> core 目录中的 signaling.c;职责:WebSocket 信令与 protobuf 收发

- 文件位置:components -> livekit -> core 目录中的 peer.c;职责:WebRTC peer 封装

- 文件位置:components -> livekit -> core 目录中的 protocol.c;职责:protobuf 编解码

- 文件位置:components -> livekit -> core 目录中的 rpc_manager.c;职责:RPC 请求/响应分发

- 文件位置:components -> livekit -> core 目录中的 url.c;职责:连接 URL 参数组装

- 文件位置:components -> livekit -> core 目录中的 system.c;职责:SDK 系统初始化

---

## 3. 迁移边界怎么划分

### 建议“尽量复用”的部分

- LiveKit 房间生命周期逻辑

- 信令编解码与消息分发逻辑

- Room 与 Engine 的状态机主流程

### 建议“重点改造”的部分

- 网络适配(socket、tls、ws)

- 并发适配(线程、锁、队列、定时)

- 音频适配(采集、播放、I2S、缓存)

- 板级初始化与系统事件对接

一句话:**核心协议层不重写,平台依赖层做等价替换。**

---

## 4. 本篇给出的改造顺序

1. 先跑通启动与系统编排(下一篇)  

2. 再打通连接总流程(第 3-5 篇)  

3. 再做音频上下行(第 6-7 篇)  

4. 最后集中做平台改造与测试调试(第 8-9 篇)

---

## 5. 这一篇的交付结果

完成本篇后,你应该已经得到两份清单:

- **架构清单**:知道每个关键文件和职责

- **边界清单**:知道迁移时哪些代码复用、哪些必须改

这是后续所有章节的前置条件。

---

## 写在最后 

ESP32 livekit 项目github 仓库:GitHub - livekit/client-sdk-esp32: LiveKit Client SDK for ESP32 series chips. Easily enable real-time audio, video, and data for embedded projects. · GitHub

下一篇将继续展开:第 2 篇《启动与系统编排流程:app_main 到 system_manager 的调用链》。  

Logo

火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。

更多推荐