BK7258 LiveKit WebRTC 适配实战(01):架构总览与迁移边界(ESP32 迁移)
> 本文是《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 的调用链》。
火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。
更多推荐
所有评论(0)