.NET 6 ベースのオンライン音声・ビデオチャットプロジェクト

.NET 6 ベースのオンライン音声・ビデオチャットプロジェクト

.NET 6で開発されたオンライン音声・ビデオチャットプロジェクトです。クライアントはWPF、バックエンドは.NET APIです。

最終更新 2022/04/03 17:34
王_先_生
読了目安 2 分
カテゴリ
.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の操作。このプロジェクトではSMSサービスに使用。
  3. CHSPinYinConv 中国語ピンインの取得。
  4. Portable.BouncyCastle TRTC暗号化に使用。
  5. SixLabors.ImageSharp 画像の操作。C#で画像を操作するにはMicrosoftのGDI描画が必要ですが、Linux上ではmonoのlibgdiplusライブラリが必要で、処理効果が理想的ではありません。

WPF側

  1. TXLiteAV テンセントクラウドのTRTCサービスの操作。ローカルデバイスの音声・ビデオストリーミング、ルーム内の他のユーザーの音声・ビデオデータの取得。
  2. XamlAnimatedGif GIFの再生。デバイスの効率問題のため、作者のソースコードを修正して再パッケージして使用。

三. プロジェクト設定

このプロジェクトを正常に実行するには、関連する設定を理解してください。

3.1 バックエンド設定:

バックエンドは .NET Core Web API を使用して開発されています。設定は以下の通りです:

  1. サードパーティサービス設定

DimensionService.Common 名前空間の ClassHelper クラスを修正します。

赤枠内の有料サービスの内容を記入してください。本プログラムでは アリババクラウドのSMSサービステンセントクラウドの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/05/27

WPFで危険警告効果を実現する

作成したプログラムをユーザーに配布した後、ユーザーが危険な操作を行っている場合、ソフトウェアは警告効果を表示する必要があります。例えば、フレームの端が赤くなるような、高徳地図のような警告効果です。

続きを読む
同じカテゴリ / 同じタグ 2024/06/20

CodeWF.EventBus:軽量イベントバス、コミュニケーションをよりスムーズに

CodeWF.EventBusは、モジュール間の疎結合通信を実現する柔軟なイベントバスライブラリです。WPF、WinForms、ASP.NET Coreなど、さまざまな.NETプロジェクトタイプに対応しています。シンプルな設計で、コマンドのパブリッシュとサブスクライブ、リクエストとレスポンスを簡単に実装できます。順序付けられたイベント処理により、イベントが適切に処理されることを保証します。コードを簡素化し、システムの保守性を向上させます。

続きを読む