用 Swift 重建我们的 Electron 会议录制引擎

会议录制工具 Circleback 将原本跑在 Electron 渲染进程里的录制引擎,重写为 Swift 原生实现,并自研了 Swift 与 React 状态同步的原子桥接层,解决了浏览器运行时导致的录制不稳定问题。

一句话看懂:会议录制工具 Circleback 将原本跑在 Electron 渲染进程里的录制引擎,重写为 Swift 原生实现,并自研了 Swift 与 React 状态同步的原子桥接层,解决了浏览器运行时导致的录制不稳定问题。

事件核心:发生了什么

Circleback 团队于 2026 年 4 月公开了其桌面端录制引擎的重构细节。此前,录制引擎运行在 Electron 应用的渲染进程中,团队发现浏览器运行时存在 GC 暂停、进程节流等问题,会导致音视频采集不稳定,即使反复优化生命周期管理、将任务移出主线程,也无法根治。最终他们决定彻底原生化:macOS 端使用 ScreenCaptureKit,Windows 端通过自研的 OBSKit 封装 libobs,并用一个共享的 Swift 层统一管理。

为解决 Swift 原生代码与 React 前端之间的通信问题,Circleback 开发了内部工具 Atomic。它通过编译期宏 @NodeExport 自动将 Swift 中每个 @Published 属性映射成 React 侧的 Jotai atom,类型自动转换(如 Intnumber),开发者无需手写 C++ 绑定或 TypeScript 包装代码。在 Windows 端,Atomic 基于 OpenCombine 实现,因此同一套桥接层可跨平台运行。

为什么重要

这一案例揭示了 Electron 类桌面应用在实时音视频处理上的边界:渲染进程的资源调度机制天然不适合低延迟、高吞吐的采集任务。Circleback 的做法代表了一种务实的技术路线——用原生层承载实时负载,再用自动代码生成解决两层之间的通信成本,而不是继续在 Web 技术栈内打补丁。对 AI 会议转录、实时协作等依赖稳定录制的产品而言,底层采集引擎的可靠性直接决定了产品能否被机构用户信任,这比前端功能迭代优先级更高。

对用户/开发者/创作者的影响

对开发者而言,Atomic 的思路值得借鉴:用编译期宏生成跨语言绑定,能显著降低原生模块的维护成本,尤其是涉及多平台时。对产品团队来说,如果业务核心是实时音视频流处理,应尽早评估浏览器运行时是否合适,而不是在出现故障后持续修修补补。Circleback 还采用了 fragmented MP4 格式,分段写入本地与云端,即使录制中途崩溃,最多丢失约 1 秒内容,这对依赖长会议记录的商务用户直接意味着更低的数据丢失风险。

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

值得关注的后续

目前公开信息显示,Atomic 仍是 Circleback 的内部工具,尚未计划开源。若未来开放,可能成为连接 Swift 与 React 生态的新选项。值得观察的方向包括:Windows 端 BitBlt 回退与黑帧检测机制在实际复杂场景中的表现;两家平台在音频采样率漂移处理差异是否会造成体验不一致;以及 Circleback 是否会基于这套原生引擎推出本地实时转录或更精确的说话人分离功能。

来源:Hacker News (黑客新闻)

celebrityanime
celebrityanime
文章: 19639

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注