5

【教程】5分钟快速集成UCloud实时音视频服务URTC-Windows端

 3 years ago
source link: https://zhuanlan.zhihu.com/p/337387381
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【教程】5分钟快速集成UCloud实时音视频服务URTC-Windows端

通过集成URTC SDK,可以从零开始,快速搭建出实时音视频通信平台,可以应用于语音和视频社交、在线教育和培训、远程医疗、在线会议、直播等多种业务场景。

集成URTC SDK之前,需要在UCLOUD官网控制台创建URTC应用。

1. 登录UCLOUD控制台

在UCLOUD官网,【登录控制台】

使用URTC服务之前,首先需要注册账号 并且完成 实名认证

2.创建URTC应用

每个账号最大支持创建5个URTC应用,需要创建更多URTC应用,请联系客户经理增加配额。

可以通过2种方法:控制台、API创建URTC应用。

2.1 控制台创建URTC应用

  • 在控制台,【全部产品】-【视频服务】-【实时音视频】,找到【我的应用】
v2-fa7710fa19ab3332ba557f037917ec50_720w.jpg
  • 点击创建应用,输入应用名称,确定后保存。
  • 确定后,自动生成AppID、AppKey。
  • 绑定AppID及AppKey到您的应用中即可开始使用。

2.2 API创建URTC应用

通过 创建URTC 应用的API,也可以创建URTC应用。具体调用API的方法,请查看API文档

3. 下载资源

4. 开发语言以及系统要求

  • 开发语言:C++
  • 系统要求:Windows 7 及以上版本的 Windows 系统

5. 开发环境

  • Visual Studio 2015 及其它c++ 开发环境
  • Win32 Platform

6. 搭建开发环境

  • 导入 SDK

1) 将 sdk/include 目录添加到项目的 INCLUDE 目录下。
2) 将 sdk/lib 目录放入项目的 LIB 目录下。
3) 将 sdk/dll 下的 dll 文件复制到你的可执行文件所在的目录下。

7. 实现音视频通话

7.1 初始化

Class UcloudRtcEventListenerImpl : public UcloudRtcEventListener {
……
};
UcloudRtcEventListener* eventhandler = new UcloudRtcEventListenerImpl

m_rtcengine = UCloudRtcEngine::sharedInstance(eventhandler);
m_rtcengine->setChannelTye(UCLOUD_RTC_CHANNEL_TYPE_COMMUNICATION);
//设置房间类型:实时通话、互动直播
m_rtcengine->setSdkMode(UCLOUD_RTC_SDK_MODE_TRIVAL);
//设置测试模式、正式模式
m_rtcengine->setStreamRole(UCLOUD_RTC_USER_STREAM_ROLE_BOTH);
//互动直播模式下,设置用户权限
m_rtcengine->setTokenSecKey(TEST_SECKEY);
//测试模式下设置自己的秘钥
m_rtcengine->setAudioOnlyMode(false);
//设置仅音频模式
m_rtcengine->setAutoPublishSubscribe(false, true);
//设置是否自动订阅
m_rtcengine->configLocalAudioPublish(false);
//设置是否自动发布
m_rtcengine->configLocalCameraPublish(true);
//设置摄像头是否可以发布
m_rtcengine->configLocalScreenPublish(false);
//设置屏幕是否可以发布
tUCloudVideoConfig& videoconfig
m_rtcengine->setVideoProfile(UCLOUD_RTC_VIDEO_PROFILE_640_360,videoconfig); 
// 设置视频编码参数,UCLOUD_RTC_VIDEO_PROFILE_NONE 时 后面填入自定义编码参数  最大1080p(1920*1080)

初始化时,需注意 setChannelTyesetStreamRole、参数的设置:

  • setChannelTye用于设置房间类型。一对一或多人通话中,建议设为 UCLOUD_RTC_CHANNEL_TYPE_COMMUNICATION ,使用通信场景;互动直播中,建议设为 UCLOUD_RTC_CHANNEL_TYPE_BROADCAST,使用直播场景。
  • setStreamRole用于设置用户权限。在互动直播中,需要设置主播和连麦方的权限为UCLOUD_RTC_USER_STREAM_ROLE_BOTH ,不需要连麦时设置主播为 UCLOUD_RTC_USER_STREAM_ROLE_PUB ;观众设置为 UCLOUD_RTC_USER_STREAM_ROLE_SUB

7.2 加入房间

tUCloudRtcAuth auth;
auth.mAppId = appid;
auth.mRoomId = roomid;
auth.mUserId = userid;
auth.mUserToken = your generate token;
m_rtcengine->joinChannel(auth);

7.3 发布流

tUCloudRtcMediaConfig config;
config.mAudioEnable = true;
config.mVideoEnable = true;
m_rtcengine->publish(UCLOUD_RTC_MEDIATYPE_VIDEO, config.mVideoEnable,config.mAudioEnable);

7.4 取消发布

tUCloudRtcVideoCanvas view;
view.mVideoView = (int)m_localWnd->GetVideoHwnd();
view.mStreamMtype = UCLOUD_RTC_MEDIATYPE_VIDEO;         
m_rtcengine->stopPreview(view);
m_rtcengine->unPublish(UCLOUD_RTC_MEDIATYPE_VIDEO);

7.5 订阅流

m_rtcengine->subscribe(tUCloudRtcStreamInfo & info)

7.6 取消订阅

m_rtcengine->unSubscribe(tUCloudRtcStreamInfo& info)

7.7 离开房间

m_rtcengine->leaveChannel()

7.8 编译、运行,开始体验吧!

本文来自UCloud用户社区,原文链接:5分钟快速集成UCloud实时音视频服务URTC-Windows端-UCloud优刻得中立云计算用户问答社区


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK