Windows C#

最近更新时间:2025-03-25 14:53:02

我的收藏
如何快速在 C# 中接入 Windows RTC Engine,以实现基本音视频通话功能。

环境准备

操作系统:Windows 7 及以上版本。
开发环境:Visual Studio 2019 及以上版本,推荐使用 Visual Studio 2022。
开发工具包:Visual Studio 选中 .NET 桌面开发工具包。

接入指引

步骤 1. 导入 SDK

1. 打开 Visual Studio,新建一个 Windows Forms App (.NET Framework) 项目。在创建项目的向导中,按照提示完成项目创建,单击创建

2. 下载 Windows C# SDK,将解压后的 SDK 文件拷贝到项目 .sln 文件所在目录下。


步骤 2. 配置项目

1. 添加引用
1.1 解决方案资源管理器中,右键点击项目名称,选择添加 > 引用

1.2 在弹出的引用管理器窗口中,单击浏览。

1.3 找到解压后 SDK 文件夹中的.dll文件,选择需要的程序集进行引用。


2. 复制 DLL 文件
为了确保程序运行时能够找到所需的 DLL 文件,在项目属性的生成事件 > 后期生成事件命令行中添加以下命令:
copy /Y "$(ProjectDir)..\\SDK\\CSharp\\!Platform!\\lib\\*.dll" "$(ProjectDir)$(OutDir)"
3. 打印 SDK 版本号
Form1.cs 文件中引入命名空间:
using ManageLiteAV;
Form1 类的构造函数或者 Load 事件中添加以下代码:
private void Form1_Load(object sender, EventArgs e)
{
ITRTCCloud trtcCloud = ITRTCCloud.getTRTCShareInstance();
string version = trtcCloud.getSDKVersion();
MessageBox.Show($"SDK version: {version}");
}

步骤 3. 创建 TRTC 实例

Form1.cs 文件中实现 ITRTCCloudCallback 接口,并声明 TRTCCloud 成员变量:
注意:
目前 ITRTCCloudCallback 的所有回调都得实现不然会出现编译报错
using System.Windows.Forms;
using ManageLiteAV;

public partial class Form1 : Form, ITRTCCloudCallback
{
private ITRTCCloud trtcCloud;
public Form1()
{
InitializeComponent();
trtcCloud = ITRTCCloud.getTRTCShareInstance();
trtcCloud.addCallback(this);
}


// 实现接口方法
public void onError(TXLiteAVError errCode, string errMsg, object extraInfo)
{
// 监听 "onError" 事件并对相应信息进行打印
MessageBox.Show($"Error: {errCode}, {errMsg}");
}


public void onWarning(TXLiteAVWarning warningCode, string warningMsg, object extraInfo)
{
// 监听 "onWarning" 事件并对相应信息进行打印
MessageBox.Show($"Warning: {warningCode}, {warningMsg}");
}


public void onEnterRoom(int result)
{
// 监听 "onEnterRoom" 事件并对相应信息进行打印
if (result > 0)
{
MessageBox.Show("Enter room successfully");
}
else
{
MessageBox.Show("Enter room failed");
}
}

public void onExitRoom(int reason)
{
// 监听 "onExitRoom" 事件并对相应信息进行打印
if (reason == 0)
{
MessageBox.Show("Exit current room by calling the 'exitRoom' api of sdk");
}
else if (reason == 1)
{
MessageBox.Show("Kicked out of the current room by server through the restful api");
}
else if (reason == 2)
{
MessageBox.Show("The current room is dissolved by server through the restful api");
}
}
}

步骤 4. 进入房间

//在 `Form1.cs` 文件中添加一个按钮,并为按钮的 `Click` 事件添加以下代码:
private void button1_Click(object sender, EventArgs e)
{
// 将以下 trtcParams 参数修改为自己的参数
TRTCParams trtcParams = new TRTCParams();
trtcParams.sdkAppId = 1400000123;
trtcParams.userId = "denny";
trtcParams.roomId = 123321;
trtcParams.userSig = "xxx";

// 对于多人视频通话场景,推荐使用 TRTC_APP_SCENE_LIVE
trtcCloud.enterRoom(trtcParams, TRTCAppScene.TRTC_APP_SCENE_LIVE);
}

步骤 5. 打开/关闭摄像头

1. 工具箱中,拖动一个PictureBox控件到窗体上。
2. 为窗体添加一个Button控件,双击该按钮,在生成的Click事件处理方法中添加以下代码:
private void button2_Click(object sender, EventArgs e)
{
// 设置本地预览渲染参数
TRTCRenderParams renderParams = new TRTCRenderParams();
renderParams.mirrorType = TRTCVideoMirrorType.TRTC_VIDEO_MIRROR_TYPE_ENABLE;
renderParams.fillMode = TRTCVideoFillMode.TRTC_VIDEO_FILL_MODE_FILL;
// 设置本地预览视图
trtcCloud.setLocalRenderParams(ref renderParams);
trtcCloud.startLocalPreview(pictureBox1.Handle);
}
以上文档介绍了如何在 C# 项目中接入 Windows RTC Engine,实现基本的音视频通话功能。在实际使用时,请根据自己的项目需求进行调整。