tencent cloud

实时音视频

Unity

下载
聚焦模式
字号
最后更新时间: 2025-08-04 17:09:22
本文将介绍如何快速完成 Unity RTC Engine 的接入,实现一个基本的音视频通话。

环境准备

Unity 2022.3.13f1版本
目前支持 Android、iOS、Windows、Mac平台。
Unity 需要包含 Android Build Support、iOS Build Support、Windows Build Support 和 macOS Build Support 模块。
其中 iOS 端开发请确保您的项目已设置有效的开发者签名。

接入指引

步骤1. 导入 SDK

1. 打开 Unity 创建一个您自己的 Unity 程序。
2. 下载 Unity SDK,解压 SDK 库包含如下文件:

3. 将解压后SDK的Assets目录下的文件Plugins、TRTCSDK拷贝到您的项目Assets文件目录下。

步骤2. 配置项目

iOS / Mac / Android 需要在工程中添加对相机和麦克风的权限申请:
iOS/Mac
Android
1. 在 Unity 工程中打开 Project Settings 的 Player 设置界面。
2. 如下图所示分别依次对 Mac / iOS 平台的 Camera Usage Description、Microphone Usage Description 添加对应权限申请的描述语句。

1. 打开您工程下的 AndroidManifest.xml 文件。
2. 在其中添加如下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus" />

步骤3. 创建 TRTC 实例

1. 引入 TRTC 命名空间。
using trtc;
2. 继承 ITRTCCloudCallback 重写 ITRTCCloudCallback 方法,用来声明定义 TRTCCloud 事件。
public class AppExample : MonoBehaviour,
ITRTCCloudCallback {
private ITRTCCloud mTRTCCloud; // 声明 ITRTCCloud 成员变量

#region ITRTCCloudCallback
public:
public void onError(TXLiteAVError errCode, String errMsg, IntPtr arg) {} // 监听 'onError' 事件
public void onWarning(TXLiteAVWarning warningCode, String warningMsg, IntPtr arg) {} // 监听 'onWarning' 事件
public void onEnterRoom(int result) {} // 监听进房结果事件
public void onExitRoom(int reason) {} // 监听退房结果事件
// to do other event.........
#endregion
}
3. 调用接口获取 TRTC 实例。
mTRTCCloud = ITRTCCloud.getTRTCShareInstance();
4. 调用 addCallback 接口用来添加监听 TRTCCloud 事件。
mTRTCCloud.addCallback(this);

步骤4. 进入房间

1. 设置进房参数 TRTCParams 并调用 enterRoom 即可成功进入房间。
参数
类型
描述
sdkAppId
UInt32
您在 TRTC 控制台中创建的音频和视频应用程序的sdkAppId。
userId
String
您指定的用户 ID。
userSig
String
用户签名,请参见 UserSig 。
roomId
UInt32
您指定的房间 ID,通常是唯一的房间 ID。
有关更详细的参数描述,请参考接口文档 enterRoom 。
TRTCParams trtcParams = new TRTCParams();
trtcParams.sdkAppId = 1400xxxxx;
trtcParams.roomId = 345;
trtcParams.userId = "123";
trtcParams.userSig = "";
TRTCAppScene scene = TRTCAppScene.TRTCAppSceneLIVE;
mTRTCCloud.enterRoom(ref trtcParams, scene);

public void onEnterRoom(int result) {} // 监听进房结果事件

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

1. 首先在 Unity 工程创建一个组件 RawImage: videoView 作为 startLocalPreview 接口参数 view 的值。
2. 在调用接口 startLocalPreview 打开摄像头预览之前,您可以通过调用接口 setLocalRenderParams 来设置本地预览的渲染参数。
// 设置本地预览渲染参数
private TRTCRenderParams renderParams = new TRTCRenderParams();
renderParams.fillMode = TRTCVideoFillMode.TRTCVideoFillMode_Fit;
renderParams.mirrorType = TRTCVideoMirrorType.TRTCVideoMirrorType_Disable;
renderParams.rotation = TRTCVideoRotation.TRTCVideoRotation0;
mTRTCCloud.setLocalRenderParams(renderParams);

// 对前置摄像头采集内容进行本地预览
mTRTCCloud.startLocalPreview(true, videoView);

// 对后置摄像头采集内容进行本地预览
mTRTCCloud.startLocalPreview(false, videoView);
3. 调用stopLocalPreview关闭摄像头预览并停止推送本地视频信息。
mTRTCCloud.stopLocalPreview();

步骤6. 打开/关闭麦克风

1. 调用 startLocalAudio 开启麦克风采集,请根据您的需求选择以下其中一个声音质量参数Quality。
// 开启麦克风采集,设置当前场景为:语音模式
// 具有高的噪声抑制能力,有强有弱的网络阻力
mTRTCCloud.startLocalAudio(TRTCAudioQuality.TRTCAudioQualitySpeech);
// 开启麦克风采集,设置当前场景为:音乐模式
// 为获得高保真度,低音质损失,建议配合专业声卡使用
mTRTCCloud.startLocalAudio(TRTCAudioQuality.TRTCAudioQualityMusic);
2. 调用stopLocalAudio关闭麦克风采集并停止推送本地音频信息。
mTRTCCloud.stopLocalAudio()

步骤7. 播放/停止视频流

1. 在进入房间之前对 onUserVideoAvailable 进行监听,当您收到onUserVideoAvailable(userId, true)通知时,表示该路画面已经有可播放的视频帧到达。
public void onUserVideoAvailable(String userId, bool available) {
}
2. 调用startRemoteView/stopRemoteView选择播放或停止远端视频画面。
mTRTCCloud.startRemoteView(“denny”, TRTCVideoStreamType.TRTCVideoStreamTypeBig, videoView);
// videoView为unity的组件RawImage
3. 调用stopRemoteView 停止播放远端画面。
mTRTCCloud.stopRemoteView(”denny“, TRTCVideoStreamType.TRTCVideoStreamTypeBig); // 仅停止播放 denny 的视频
mTRTCCloud.stopAllRemoteView(true); // 静音所有远端用户

步骤8. 播放/停止音频流

调用 muteRemoteAudio 选择播放或停止远端声音。
// 静音
mTRTCCloud.muteRemoteAudio("denny", true); // 仅静音 denny
mTRTCCloud.muteAllRemoteAudio(true); // 静音所有远端用户
// 取消静音
mTRTCCloud.muteRemoteAudio("denny", false); // 仅取消静音 denny
mTRTCCloud.muteAllRemoteAudio(false); // 取消静音所有远端用户

步骤9. 退出房间

1. 调用 exitRoom 退出当前的房间:
mTRTCCloud.exitRoom();
2. TRTC SDK 会在退房结束后通过 onExitRoom 回调事件通知您。
public void onExitRoom(int reason) {} // 监听退房结果事件

常见问题

您可以在 API 参考 查看所有函数列表及其描述。

联系我们

如果有任何需要或者反馈,您可以联系:info_rtc@tencent.com。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈