<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>TRTC on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/trtc/</link><description>Recent content in TRTC on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 08 Aug 2026 23:20:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/trtc/index.xml" rel="self" type="application/rss+xml"/><item><title>Electron 中使用 SwiftPM 构建跨平台 TRTC Native Addon</title><link>https://amatsuzero.github.io/LastStand/posts/electronswifttrtcaddon/</link><pubDate>Sat, 08 Aug 2026 23:20:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/electronswifttrtcaddon/</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;Electron 的优势在于 UI 开发效率高，但在实现 RTC、视频前处理、美颜和虚拟背景等能力时，往往会触及 Web SDK 的边界。&lt;/p&gt;
&lt;p&gt;TRTC 是腾讯云实时音视频 SDK，适合做采集、推流、拉流、前处理和视频渲染这条主链路。它和浏览器里的 Web SDK 不是一回事：Web SDK 更轻，TRTC Native SDK 则给了更完整的原生能力。&lt;/p&gt;
&lt;p&gt;SwiftPM 是 Swift Package Manager，也就是 Swift 的包管理和构建工具。它不只是“装依赖”，还负责描述 target、平台条件、二进制产物和构建关系，所以很适合拿来组织 Swift、C、C++ 和 Objective-C++ 混合工程。&lt;/p&gt;
&lt;p&gt;以 TRTC 为例，如果 Web SDK 不支持发送前的视频处理，主链路就无法只依靠 &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;、Canvas、WebGL 或 WebGPU，而需要接入 TRTC Native SDK。&lt;/p&gt;
&lt;p&gt;本文整理了一套可落地的方案：用 SwiftPM 管理混合代码，构建 Node Addon；Electron 负责 UI 和布局，TRTC Native SDK 负责采集、前处理、编解码和视频渲染。&lt;/p&gt;
&lt;p&gt;目标不是强行让所有平台共用完全相同的原生代码，而是统一 JS API 和包管理结构，并在平台适配层分别接入 macOS 与 Windows SDK。&lt;/p&gt;
&lt;h2 id="为什么-addon-用-swift"&gt;为什么 addon 用 Swift&lt;/h2&gt;
&lt;p&gt;这篇方案里，addon 选择 Swift 不是为了绕开 C++，而是因为它刚好处在一个很合适的中间层：上面要接 Electron 和 Node-API，下面要接平台 SDK、窗口句柄和 TRTC。&lt;/p&gt;</description></item></channel></rss>