产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明

.vcxproj 文件所在目录下。
$(ProjectDir)SDK\\CPlusPlus\\Win64\\include 和 $(ProjectDir)SDK\\CPlusPlus\\Win64\\include\\TRTC。
$(ProjectDir)SDK\\CPlusPlus\\Win64\\lib。
liteav.lib。
copy /Y $(ProjectDir)SDK\\CPlusPlus\\Win64\\lib\\*.dll $(OutDir)。
#include "ITRTCCloud.h"
"ITRTCCloud.h",否则将会出现报错: ITRTCCloud:未定义标识符。OnInitDialog 函数中,添加以下代码:ITRTCCloud * pTRTCCloud = getTRTCShareInstance();CString szText;szText.Format(L"SDK version: %hs", pTRTCCloud->getSDKVersion());CWnd *pStatic = GetDlgItem(IDC_STATIC);pStatic->SetWindowTextW(szText);

"ITRTCCloud.h",将该文件中的类公有继承于 CWinApp 和 ITRTCCloudCallback,并声明监听事件和 TRTCCloud 成员变量。#include "ITRTCCloud.h" // 引入 TRTC 头文件class CRTCWindowsApp: public CWinApp, public ITRTCCloudCallback{public:CRTCWindowsApp();// Overridespublic:virtual BOOL InitInstance();virtual void onError(TXLiteAVError errCode, const char* errMsg, void* extraInfo) override; // 监听 'onError' 事件virtual void onWarning(TXLiteAVWarning warningCode, const char* warningMsg, void* extraInfo) override; // 监听 'onWarning' 事件virtual void onEnterRoom(int result) override; // 监听 'onEnterRoom' 事件virtual void onExitRoom(int reason) override; // 监听 'onExitRoom' 事件// 获取 TRTCCloud 实例static CRTCWindowsApp* GetInstance(){return static_cast<CRTCWindowsApp*>(AfxGetApp());}// ImplementationDECLARE_MESSAGE_MAP()public:ITRTCCloud* trtc_cloud_; // 声明 TRTCCloud 成员变量};
InitInstance 方法中调用 getTRTCShareInstance 初始化 TRTC 对象实例。// 初始化 TRTCCloud 对象并添加事件监听trtc_cloud_ = getTRTCShareInstance();trtc_cloud_->addCallback(this);
SetRegistryKey(_T("Local AppWizard-Generated Applications")) 方法后。// 对监听事件进行处理void CRTCWindowsApp::onError(TXLiteAVError errCode, const char* errMsg, void* extraInfo) {// 监听 "onError" 事件并对相应信息进行打印}void CRTCWindowsApp::onWarning(TXLiteAVWarning warningCode, const char* warningMsg, void* extraInfo) {// 监听 "onWarning" 事件并对相应信息进行打印}void CRTCWindowsApp::onEnterRoom(int result) { // 监听 "onEnterRoom" 事件并对相应信息进行打印if (result > 0) {MessageBox(NULL, TEXT("Enter room successfully"), TEXT("Notice"), MB_OK | MB_ICONINFORMATION);}else {MessageBox(NULL, TEXT("Enter room failed"), TEXT("Notice"), MB_OK | MB_ICONINFORMATION);}}void CRTCWindowsApp::onExitRoom(int reason) { // 监听 "onExitRoom" 事件并对相应信息进行打印if (reason == 0) {MessageBox(NULL, TEXT("Exit current room by calling the 'exitRoom' api of sdk"), TEXT("Notice"), MB_OK | MB_ICONINFORMATION);} else if (reason == 1) {MessageBox(NULL, TEXT("Kicked out of the current room by server through the restful api"), TEXT("Notice"), MB_OK | MB_ICONINFORMATION);} else if (reason == 2) {MessageBox(NULL, TEXT("The current room is dissolved by server through the restful api"), TEXT("Notice"), MB_OK | MB_ICONINFORMATION);}}
TRTCParams 并调用 enterRoom 即可成功进入房间,该方法通常在点击开始通话按钮后调用。void CRTCWindowsApp::OnBnClickedButton() {// 将以下 trtcParams 参数修改为自己的参数liteav::TRTCParams trtcParams;trtcParams.sdkAppId = 1400000123;trtcParams.userId = "denny";trtcParams.roomId = 123321;trtcParams.userSig = "xxx";// 对于多人视频通话场景,推荐使用 TRTC_APP_SCENE_LIVEITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->enterRoom(trtcParams, liteav::TRTCAppSceneLIVE);}
pLocalVideoView进行初始化,设置本地预览的渲染参数 setLocalRenderParams ,并调用startLocalPreview进行本地预览,成功调用enterRoom后开始推流。void CRTCWindowsApp::OnBnClickedButton(){// 设置本地预览渲染参数liteav::TRTCRenderParams render_params;render_params.mirrorType = liteav::TRTCVideoMirrorType_Enable;render_params.fillMode = TRTCVideoFillMode_Fill;ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->setLocalRenderParams(render_params);// 初始化 pLocalVideoViewCWnd* pLocalVideoView = GetDlgItem(AFX_IDC_PICTURE);if (pLocalVideoView != nullptr) {auto local_view = (liteav::TXView)(pLocalVideoView->GetSafeHwnd());// 对采集内容进行本地预览trtcCloud->startLocalPreview(local_view);}}
stopLocalPreview关闭摄像头预览并停止推送本地视频信息。void CRTCWindowsApp::OnBnClickedButton(){TRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->stopLocalPreview();}
startLocalAudio 开启麦克风采集,请根据您的需求选择以下其中一个声音质量参数Quality。// 开启麦克风采集,设置当前场景为:语音模式// 具有高的噪声抑制能力,有强有弱的网络阻力ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->startLocalAudio(TRTCAudioQualitySpeech);
// 开启麦克风采集,设置当前场景为:音乐模式// 为获得高保真度,低音质损失,建议配合专业声卡使用ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->startLocalAudio(TRTCAudioQualityMusic);
stopLocalAudio关闭麦克风采集并停止推送本地音频信息。ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->stopLocalAudio();
onUserVideoAvailable(userId, YES)通知时,表示该路画面已经有可播放的视频帧到达。startRemoteView/stopRemoteView选择播放或停止远端视频画面。// 播放视频CWnd* pLocalVideoView = GetDlgItem(AFX_IDC_PICTURE);if (pLocalVideoView != nullptr) {auto local_view = (liteav::TXView)(pLocalVideoView->GetSafeHwnd());ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->startRemoteView("denny", liteav::TRTCVideoStreamTypeBig, video_view);}
stopRemoteView 停止播放远端画面。// 停止播放ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->stopRemoteView("denny", liteav::TRTCVideoStreamTypeBig); // 仅停止播放 denny 的视频trtcCloud->stopAllRemoteView(); // 停止所有视频播放
muteRemoteAudio 选择播放或停止远端声音。// 静音ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->muteRemoteAudio("denny", true); // 仅静音 dennytrtcCloud->muteAllRemoteAudio(true); // 静音所有远端用户
// 取消静音ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->muteRemoteAudio("denny", false); // 仅取消静音 dennytrtcCloud->muteAllRemoteAudio(false); // 取消静音所有远端用户
exitRoom 退出当前的房间,TRTC SDK 会在退房结束后通过 onExitRoom 回调事件通知您。void CRTCWindowsApp::OnBnClickedButton(){ITRTCCloud* trtcCloud = CRTCWindowsApp::GetInstance()->trtc_cloud_;trtcCloud->exitRoom();}
文档反馈