Unity
本文将介绍如何快速完成 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 需要在工程中添加对相机和麦克风的权限申请:
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 ITRTCCloudCallbackpublic: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
即可成功进入房间。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); // 仅静音 dennymTRTCCloud.muteAllRemoteAudio(true); // 静音所有远端用户
// 取消静音mTRTCCloud.muteRemoteAudio("denny", false); // 仅取消静音 dennymTRTCCloud.muteAllRemoteAudio(false); // 取消静音所有远端用户
步骤9. 退出房间
1. 调用
exitRoom
退出当前的房间:mTRTCCloud.exitRoom();
2. TRTC SDK 会在退房结束后通过
onExitRoom
回调事件通知您。public void onExitRoom(int reason) {} // 监听退房结果事件
常见问题
您可以在 API 参考 查看所有函数列表及其描述。
联系我们
如果有任何需要或者反馈,您可以联系:info_rtc@tencent.com。