集成SDK
所有文档

          实时音视频 RTC

          集成SDK

          开发环境

          请确保开发环境满足以下技术要求:

          • Visual Studio 2017 版本
          • 安装Windows Softerware Development Kit - Windows 10.0.17763.132 及以上
          • 安装Microsoft Visual C++ 2017 Redistributable (x64/x86)
          • Windows7、Windows8、Windows10或以上版本
          • 支持麦克风、摄像头采集,或拥有支持音视频功能的外部设备

          SDK下载

          请前往RTC下载中心进行下载。

          SDK目录说明

          1. include目录 ------ 放置api头文件
          2. libs目录 ------ 放置 RtcWindowsSdkDll.dll 和 RtcWindowsSdkDll.lib,以及证书文件 a
          3. third_libs目录 ------ 是libs目录的子目录,放置依赖的第三方库 ffmpeg.dll/ffmpeg.dll.lib
            websockets_rtc.dll/websockets_rtc.lib
            libcrypto-1_1-x64.dll
            libssl-1_1-x64.dll
            libcurl.dll/libcurl.lib

          SDK集成

          1. 将include目录加入到头文件搜索路径。工程目录选项右键”属性”—->”c/c++”—->”常规”—->附加包含目录 添加include目录,如下图: image.png
          2. 将libs,third_libs 目录加入到库搜索路径。工程目录选项右键”属性”—->”链接器”—->”常规”—->附加库目录 添加libs/third_libs目录,如下图: image.png
          3. 指定链接库,指定libs/third_libs目录下的xxxx.lib。工程目录选项右键”属性”—->”链接器”—->”输入”—->附加依赖项 添加xxxx.lib,如下图: image.png
          4. 将libs 和 third_libs目录下的xxxx.dll复制到二进制运行文件目录下。

          完成以上步骤后,即可开始调用Windows RTC的API。

          API调用流程

          • c++ interface calling flow windows_rtc_multi_instance.png
          • c# interfac calling flow

          API codes使用样例

          ......
          externalVideoCapturer_ = std::make_shared<ExternalVideoCapturer>();
              rtcRoomClient_ = baidurtc::createBaiduRtcRoomClient();
              if (rtcRoomClient_) {
                  rtcRoomClient_->initSdk((char*)appid, (char*)token, (char*)cerpath);
                  if (isEnableExternalVideoCapturer) {
                      rtcRoomClient_->registerExternalVideoCapturer(externalVideoCapturer_);
                  }
                  rtcRoomClient_->registerVideoFrameObserver(videoFrameListener_, 2);
                  rtcRoomClient_->registerRtcMessageListener(this);
                  rtcRoomClient_->setBitRate(300000);//500kbs;
              }
          ......
          case WM_COMMAND:
                  if (button_ == reinterpret_cast<HWND>(lp)) {
                      if (BN_CLICKED == HIWORD(wp)) {
                          //OnDefaultAction();
                          char roomId[52];
                          GetWindowTextA(
                              edit1_,
                              roomId,
                              52);
                          if (roomId[0] == '\0') {
                              MessageBox("提示", "房间号不能为空", true);
                              return false;
                          }
                          //produce random user id
                          int userId = random(10000, 20000);
                          std::string userId_str = int2string(userId);
                          if (isPublisher) {
                              rtcRoomClient_->publishStreaming(roomId, (char*)userId_str.c_str(), true);
                          }
                          else {
                              rtcRoomClient_->subscribeStreaming((char*)roomid, (char*)userid, (char*)feedid);
                          }
                      }
                  }
          ......

          打包应用程序-依赖的系统库

          • libgcc_s_dw2-1.dll
          • libstdc++-6.dll
          • libwinpthread-1.dll
          • ucrtbased.dll
          • vcruntime140d.dll
          • vc++ 运行环境 vcredist_x64, 在打包程序选项中选中后,会自动打包到安装程序包中
          上一篇
          概述
          下一篇
          开发环境搭建