Electron 中使用 SwiftPM 构建跨平台 TRTC Native Addon

背景 Electron 的优势在于 UI 开发效率高,但在实现 RTC、视频前处理、美颜和虚拟背景等能力时,往往会触及 Web SDK 的边界。 TRTC 是腾讯云实时音视频 SDK,适合做采集、推流、拉流、前处理和视频渲染这条主链路。它和浏览器里的 Web SDK 不是一回事:Web SDK 更轻,TRTC Native SDK 则给了更完整的原生能力。 SwiftPM 是 Swift Package Manager,也就是 Swift 的包管理和构建工具。它不只是“装依赖”,还负责描述 target、平台条件、二进制产物和构建关系,所以很适合拿来组织 Swift、C、C++ 和 Objective-C++ 混合工程。 以 TRTC 为例,如果 Web SDK 不支持发送前的视频处理,主链路就无法只依靠 <video>、Canvas、WebGL 或 WebGPU,而需要接入 TRTC Native SDK。 本文整理了一套可落地的方案:用 SwiftPM 管理混合代码,构建 Node Addon;Electron 负责 UI 和布局,TRTC Native SDK 负责采集、前处理、编解码和视频渲染。 目标不是强行让所有平台共用完全相同的原生代码,而是统一 JS API 和包管理结构,并在平台适配层分别接入 macOS 与 Windows SDK。 为什么 addon 用 Swift 这篇方案里,addon 选择 Swift 不是为了绕开 C++,而是因为它刚好处在一个很合适的中间层:上面要接 Electron 和 Node-API,下面要接平台 SDK、窗口句柄和 TRTC。 ...

August 8, 2026