.NET 8 + Avalonia 实现跨平台的视频会议(Windows、Linux、信创) 📅 2026/7/1 16:57:28 目录前言项目介绍项目功能1、多人音视频会话2、屏幕共享3、电子白板协作项目特点项目技术项目说明1、OVCS.Core是公共类库OVCS.Server3、OVCS.ClientAvalonia项目效果项目源码Giteehttps://gitee.com/smallcore/avalonia-demo总结前言这两年.NET 生态在跨平台桌面开发领域有了明显突破。尤其是 Avalonia 的快速演进让大家终于有了一个真正能替代 Electron 的原生方案。两个月前发布的 Avalonia 11 更是关键一步——它不仅将整个渲染栈统一到 .NET 6还内置了高质量的 Fluent 2 风格控件视觉体验几乎和 Windows 11 原生应用无异。C# 实现 Linux 视频会议支持信创环境银河麒麟统信UOS作者重新审视之前用 CPF.NET 开发的视频会议Demo既然 Avalonia 已经如此成熟何不移植一版本文将介绍基于 Avalonia 11.3 .NET 8 的跨平台视频会议客户端不仅能在 Windows 上流畅运行也顺利跑在银河麒麟 V10 SP1 等国产信创系统上。项目介绍OVCS.Avalonia 是一个功能完整的视频会议系统原型包含服务端与客户端目标是验证 Avalonia 在复杂多媒体场景下的可行性。项目延续了原有架构但 UI 层全面重构为 Avalonia 实现充分利用其跨平台能力与现代化设计语言。无论是企业内部协作还是国产化替代场景这套方案都具备实际落地价值。项目功能1、多人音视频会话支持动态调节视频码率以适应网络波动语音优先保障集成 AEC回音消除、DENOISE降噪、AGC自动增益和 VAD静音检测确保通话清晰提供 1×1、2×2、3×3 多种分屏布局。2、屏幕共享任意成员可发起桌面共享画面质量随网络自适应支持远程控制授权实现协同操作。3、电子白板协作支持绘图、插入图片、截屏内容可导出为位图区分观看与控制模式断线后自动重连并同步最新白板状态。项目特点真跨平台同一套代码编译后可在 Windows 7/10/11、银河麒麟、统信 UOS 等系统运行现代 UI 体验Avalonia 11 的 Fluent 2 控件开箱即用界面简洁、动效流畅符合当代审美轻量高效相比基于 Web 技术的方案资源占用更低启动更快国产化已在主流信创 OS 实测通过适配 X64、ARM、LoongArch 等多种 CPU 架构。项目技术1、开发工具Visual Studio 20222、开发框架.NET 8.03、开发语言C#4、UI 框架Avalonia 11.3项目说明解决方案由三个项目组成1、OVCS.Core是公共类库用于定义视频会议中服务端和客户端都需要使用到的信息比如消息协议、公共 Entity 等。请特别注意 GroupExtension 类该类用于记录当前会议的状态如主持人是谁、谁开启了桌面共享、谁开启了电子白板等。public classGroupExtension { /// summary /// 主持人ID /// /summary publicstring ModeratorID { get; set; } /// summary /// 正在共享远程桌面的用户ID /// /summary publicstring DesktopSharedUserID { get; set; } /// summary /// 主持人是否开启白板 /// /summary publicbool IsModeratorWhiteBoardNow { get; set; } }OVCS.Server视频会议的服务端控制台程序基于 .NET 8。服务端在 CustomizeInfoHandler 类中处理来自客户端的请求消息特别是 MultimediaServer_CustomizedMessageReceived 事件处理函数中。CustomizeInfoHandler 的初始化函数定义如下public void Initialize(IMultimediaServer server) { this.chatGroupManager new ObjectManagerstring, ChatGroup(); this.multimediaServer server; this.multimediaServer.CustomizedMessageReceived MultimediaServer_CustomizedMessageReceived; this.multimediaServer.UserDisconnected MultimediaServer_UserDisconnected; this.multimediaServer.SomeoneJoinChatGroup MultimediaServer_SomeoneJoinChatGroup; }3、OVCS.ClientAvalonia视频会议的客户端Avalonia 实现 UI基于 .NET 8。客户端的视频会议主要业务在 MainWindow.axaml 中实现并在 Multimedia_CustomizedMessageReceived 函数中处理来自服务端的消息。MainWindow 的初始化函数定义如下internal void Initialize(string _roomID) { App.Multimedia.OutputVideo true; App.Multimedia.SpeakerVoiceNotified Multimedia_SpeakerVoiceNotified; App.Multimedia.CustomizedMessageReceived Multimedia_CustomizedMessageReceived; App.Multimedia.ConnectionInterrupted Multimedia_ConnectionInterrupted; }项目效果在银河麒麟 V10 SP1 上实测客户端启动迅速界面渲染流畅Fluent 2 风格控件与系统融合自然。视频通话延迟可控语音清晰无回声屏幕共享画面更新及时白板操作响应灵敏。即使在网络波动下系统也能自动降级保语音体验接近商业产品。更重要的是部署极其简单——只需拷贝 .net8.0 文件夹无需安装额外依赖。项目源码项目结构清晰适合学习或二次开发Windows 安装 .NET 8 后直接双击 .exe 即可运行Linux 或信创系统用户进入 .net8.0 目录执行dotnet OVCS.ClientAvalonia.dll启动客户端服务端同样为控制台程序部署方式一致Giteehttps://gitee.com/smallcore/avalonia-demo总结Avalonia的崛起为 .NET 开发打开了一扇通往真正跨平台原生应用的大门。OVCS.Avalonia 不仅是一次技术迁移更是对 Avalonia 在复杂业务场景下能力的一次验证。它证明了不用 Electron不用 WebView我们依然能做出高性能、高颜值、跨平台的桌面应用甚至还能跑在国产操作系统上。如果大家也在找 .NET 跨平台 UI 方案Avalonia 值得认真考虑。引入地址