基於 .NET 6 開發的線上音視頻聊天專案

基於 .NET 6 開發的線上音視頻聊天專案

基於 .NET 6 開發的線上音視頻聊天專案,客戶端 WPF,後端 .NET API。

最後更新 2022/4/3 下午5:34
王_先_生
預計閱讀 4 分鐘
分類
.NET
專題
WPF 開源專案
標籤
.NET C# WPF WPF 開源專案 開源

一個基於.NET 6開發的線上音視訊聊天專案,客戶端使用WPF開發,後端使用.NET Core Web API

一. 專案介紹

一個基於.NET 6開發的線上音視訊聊天專案,客戶端使用WPF開發,後端使用.NET Core Web API

倉庫位址:https://github.com/qian-o/Dimension

倉庫截圖:

專案程式碼結構:

二. 使用第三方相依性介紹

公用相依性

  1. log4net 日誌記錄。
  2. SignalR 用於伺服器與客戶端的通訊手段,該專案用於好友申請、訊息提示、公告、聊天和音視訊通話等一系列通知。
  3. EntityFrameworkCore 操作資料庫的 ORM 工具,服務端使用 SqlServer,客戶端使用 Sqlite。
  4. Newtonsoft.Json 序列化和反序列化 JSON。

服務端

  1. TencentCloudSDK 操作騰訊雲服務 API,該專案用於管理通話房間。
  2. aliyun-net-sdk-core 操作阿里雲服務 API,該專案用於簡訊服務。
  3. CHSPinYinConv 取得中文拼音。
  4. Portable.BouncyCastle TRTC 加密使用。
  5. SixLabors.ImageSharp 操作圖片,因 C# 中操作圖片需要微軟的 GDI 繪圖,但在 Linux 上操作需透過 mono 的 libgdiplus 函式庫,處理效果並不理想。

WPF 端

  1. TXLiteAV 操作騰訊雲的 TRTC 服務,本機裝置音視訊推流、取得房間內其他使用者音視訊資料。
  2. XamlAnimatedGif 播放 GIF,因裝置效率問題,修改作者原始碼後重新打包使用。

三. 專案設定

如果需要正常執行此專案,請了解相關設定。

3.1 後端設定:

後端使用 .NET Core Web API 開發,設定如下:

  1. 第三方服務設定

修改DimensionService.Common命名空間下 ClassHelper類別

請填寫紅框內付費服務內容,本程式使用阿里的簡訊服務騰訊的 TRTC 服務,填寫內容請見官方說明。

  1. 資料庫

該服務採用SQL Server 2019資料庫,並使用EF CORE作為主要的ORM框架,首次使用需要遷移資料庫。

開啟程式套件管理主控台,輸入

Update-Database InitialCreate

該專案提供線上位址,http://47.96.133.119:5000 (站長註:目前無法存取此位址)

3.2 客戶端設定

客戶端使用 WPF 開發,如下圖:

紅框內容需與服務端保持一致

已實現的功能

  1. 登入|註冊
  2. 新增好友
  3. 音視訊線上通話
  4. 聊天(圖片、文字、富文本)
  5. 截圖(多顯示器不同 dpi 支援)

客戶端部分截圖:

站長沒有條件,錄製一個登入動畫(哈哈):

下面是作者 readme 和部落格園的圖片:

四. 功能示範

作者太懶,以後再寫!

我還是提供測試帳號和程式位址吧。

不過需要安裝 NET6 桌面執行階段,這是下載位址:.NET 6 桌面執行階段

測試使用者

1571221{1 ~ 9}177,

密碼統一為 12345678。

所有使用者登入資訊我都放在程式包裡啦,並且都添加了我作為好友。😄

五. 程式包

連結:https://pan.baidu.com/s/1aTh_710GpKIIHOHpvVCpBw?pwd=cp4o

提取碼:cp4o

--來自百度網盤超級會員 V4 的分享

六. 示範影片

連結:https://pan.baidu.com/s/1n-sQZFgO9GEhS80jHLVouA?pwd=85x3

提取碼:85x3

--來自百度網盤超級會員 V4 的分享

七. 專案倉庫位址

GitHub 位址:https://github.com/qian-o/Dimension

繼續探索

延伸閱讀

更多文章
同分類 / 同標籤 2025/5/27

WPF完成一個危險提醒效果

當我們寫的程式發放出去後,用戶是在進行一些危險操作,我們的軟體應該給一些提醒效果,比如邊框邊緣有紅色,類似與高德地圖那樣的警報提醒效果

繼續閱讀
同分類 / 同標籤 2024/6/20

CodeWF.EventBus:輕量級事件匯流排,讓通訊更流暢

CodeWF.EventBus,一款靈活的事件匯流排庫,實現模組間解耦通訊。支援多種.NET專案類型,如WPF、WinForms、ASP.NET Core等。採用簡潔設計,輕鬆實現命令的發布與訂閱、請求與回應。透過有序的事件處理,確保事件得到妥善處理。簡化您的程式碼,提升系統可維護性。

繼續閱讀