API
所有文档

          实时音视频 RTC

          API

          API调用流程

          windows_api_flow.png

          初始化相关接口

          createBaiduRtcConfigure

          std::unique_ptr<BaiduRtcConfigure> createBaiduRtcConfigure()

          介绍

          创建RtcSdk配置。

          创建 BaiduRtcConfigure, 用于 sdk 环境配置。

          参数

          返回

          BaiduRtcConfigure 指针

          initializeBaiduRtcSdk

          void initializeBaiduRtcSdk(char* appId, char* token, char* cerPath)

          介绍

          初始化SDK。

          初始化 windows rtc sdk, 需在使用之前调用进行初始化。

          参数

          参数 类型 描述
          appId char* RTC 基础业务单元的唯一标识
          token char* RTC Server 端鉴权使用的字符串
          cerPath char* ssl 证书存放路径,证书有百度提供

          返回

          deInitializeBaiduRtcSdk

          void deInitializeBaiduRtcSdk()

          介绍

          释放SDK。

          sdk 使用完,可调用该 api 进行释放,销毁操作。

          参数

          返回

          createBaiduRtcRoomClient

          std::unique_ptr<BaiduRtcRoomClient> createBaiduRtcRoomClient()

          介绍

          创建 BaiduRtcRoomClient。

          用户使用该 sdk 开发的入口,首先需要创建 BaiduRtcRoomClient, 通过该 api 初始化 sdk,发布流,订阅流等其他可提供的 api 操作。

          参数

          返回

          BaiduRtcRoomClient 指针

          BaiduRtcConfigure::configureRtcSdk

          void BaiduRtcConfigure::configureRtcSdk()

          介绍

          配置Rtc SDK 环境。

          配置sdk环境,须在 initializeBaiduRtcSdk 接口之前调用。

          参数

          返回

          BaiduRtcConfigure::deConfigureRtcSdk

          void BaiduRtcConfigure::deConfigureRtcSdk()

          介绍

          释放 Rtc SDK 环境配置资源。

          释放configureRtcSdk接口配置的资源,在 deInitializeBaiduRtcSdk 接口之后调用,清除 sdk 占用的所有资源

          参数

          返回

          房间相关接口

          BaiduRtcRoomClient::loginRoom

          bool BaiduRtcRoomClient::loginRoom(char* roomId, char* userId)

          介绍

          房间登录。

          登录房间成功后,用户可以发布流,或订阅流,并能通过IRtcMessageListener接口获取房间状态信息。

          参数

          参数 类型 描述
          roomId char* 房间名,长度不超过255字节
          userId char* 用户id, 每个房间的用户id必须唯一

          返回

          true 成功, false 失败

          BaiduRtcRoomClient::logoutRoom

          bool BaiduRtcRoomClient::loginRoom(char* roomId, char* userId)

          介绍

          房间登出。

          关闭媒体通道,关闭信令通道,释放内存资源,及销毁其他申请的资源。

          参数

          返回

          true 成功, false 失败

          发布/订阅流相关接口

          BaiduRtcRoomClient::publishStreaming

          void BaiduRtcRoomClient::publishStreaming(bool isSubsrcibe)

          介绍

          发布流。

          流发布在roomId指定的房间,在同一房间joined 的用户可以相互订阅流。

          参数

          参数 类型 描述
          isSubscribe bool 标识在发布流的同时,是否订阅流,默认是订阅流的

          返回

          BaiduRtcRoomClient::publishStreaming

          void BaiduRtcRoomClient::publishStreaming(char* streamingIds[],int streamingNum)

          介绍

          发布流。

          流发布在 roomId 指定的房间,在同一房间joined 的用户可以相互订阅流,该 API 可以指定要发布的流。

          参数

          参数 类型 描述
          streamingIds char* 用户要发布的流 id 列表
          streamingNum int 欲发布的流数目,即streamingIds的大小

          返回

          BaiduRtcRoomClient::subscribeStreaming

          void BaiduRtcRoomClient::subscribeStreaming(char* streamingIds[], int streamingNum)

          介绍

          订阅流。

          用于订阅同一房间的其他用户的流。

          参数

          参数 类型 描述
          streamingIds char* 用户要订阅的其他用户的流id列表(即其他用户id列表)
          streamingNum int 欲订阅的流数目,即streamingIds的大小

          返回

          BaiduRtcRoomClient::stopPublishStreaming

          void BaiduRtcRoomClient::stopPublishStreaming()

          介绍

          停止发布流。

          publishing 的流都可通过该 interface 停止发布或订阅。

          参数

          返回

          BaiduRtcRoomClient::stopSubscribeStreaming

          void BaiduRtcRoomClient::stopSubscribeStreaming(char* streamingIds[], int streamingNum)

          介绍

          停止发布流。

          publishing and subscribering 的流都可通过该interface停止发布或订阅。

          参数

          参数 类型 描述
          streamingIds char* 用户要停止订阅的流id列表(即其他用户id列表)
          streamingNum int 欲停止订阅的流数目,即streamingIds的大小

          返回

          音视频参数设置

          BaiduRtcRoomClient::setBitRate

          void BaiduRtcRoomClient::setBitRate(int bitRate)

          介绍

          设置视频编码码率。

          该接口用于设置视频编码码率,sdk 会根据网络状况做自适应码率调整,但不会超过通过该接口设置的码率即以该值为最大码率。

          参数

          参数 类型 描述
          bitRate int 需要设置视频码率值,如设置300kbps, 则bitRate = 300*1024

          返回

          BaiduRtcRoomClient::setResolution

          void BaiduRtcRoomClient::setResolution(int width, int height)

          介绍

          设置视频编码码率。

          用于设置视频采集分辨率,若使用外部视频采集,就无需设置。

          参数

          参数 类型 描述
          width int 视频采集宽
          height int 视频采集高

          返回

          BaiduRtcRoomClient::setFps

          void BaiduRtcRoomClient::setFps(int fps)

          介绍

          设置视频采集帧率。

          用于设置视频采集分辨率,若使用外部视频采集,就无需设置。

          参数

          参数 类型 描述
          fps int 视频采集的帧率,如15fps, 24fps, 29fps等

          返回

          BaiduRtcRoomClient::setVideoFromat

          void BaiduRtcRoomClient::setVideoFromat(VideoColorFormat vcf)

          介绍

          设置视频颜色空间格式。

          用于设置视频颜色空间格式。

          参数

          参数 类型 描述
          vcf VideoColorFormat 支持的视频颜色空间格式ARGB/I420

          返回

          摄像头相关接口

          BaiduRtcRoomClient::openCamera

          void BaiduRtcRoomClient::openCamera(char* deviceName)

          介绍

          打开摄像头。

          打开摄像头后,可开始画面预览。

          参数

          参数 类型 描述
          deviceName char* 设备名称,若为空,开启默认的设备,否则开启指定的设备

          返回

          BaiduRtcRoomClient::closeCamera

          void BaiduRtcRoomClient::closeCamera()

          介绍

          关闭摄像头。

          关闭并释放摄像头资源。

          参数

          返回

          BaiduRtcRoomClient::muteCamera

          void BaiduRtcRoomClient::muteCamera(bool isMuted)

          介绍

          Mute摄像头。

          静默摄像头,停止画面预览及传输。

          参数

          参数 类型 描述
          isMuted bool 是否静默摄像头

          返回

          音频相关接口

          BaiduRtcRoomClient::muteMicphone

          void BaiduRtcRoomClient::muteMicphone(bool isMuted)

          介绍

          Mute麦克风。

          静默麦克风,停止声音传输。

          参数

          参数 类型 描述
          isMuted bool 是否静默麦克风

          返回

          BaiduRtcRoomClient::setVolume

          void BaiduRtcRoomClient::setVolume(uint32_t volume)

          介绍

          音量控制。

          用于控制扬声器音量的大小。

          参数

          参数 类型 描述
          volume uint32_t 音量值,范围 0 ~ 10

          返回

          视频相关接口

          BaiduRtcRoomClient::startPreview

          void BaiduRtcRoomClient::startPreview()

          介绍

          开始预览。

          打开摄像头后,可开始画面预览。

          参数

          返回

          BaiduRtcRoomClient::stopPreview

          void BaiduRtcRoomClient::stopPreview()

          介绍

          停止预览。

          在开始预览后,可通过该接口停止预览。

          参数

          返回

          BaiduRtcRoomClient::setVideoMirror

          void BaiduRtcRoomClient::setVideoFromat(bool isOpenMirror)

          介绍

          设置镜像。

          用于设置是否打开镜像功能。

          参数

          参数 类型 描述
          isOpenMirror bool 设置是否打开镜像功能

          返回

          BaiduRtcRoomClient::registerVideoFrameObserver

          void BaiduRtcRoomClient::registerVideoFrameObserver(IVideoFrameObserver* iVfo[], int iVfoNum)

          介绍

          注册视频数据帧到达Observer。

          当使用外部渲染时,需要注册视频数据监测接口,有视频数据到来时,可通知用户去做渲染或其他处理。接口详细信息可查看头文件:BaiduExternalVideoRendererInterface.h

          参数

          参数 类型 描述
          iVfo IVideoFrameObserver* 数据帧到达Observer接口数组,多个接口可多路流,一个接口listening一路流
          iVfoNum int Observer 接口数

          返回

          屏幕共享相关接口

          BaiduRtcRoomClient::startShareScreen

          void BaiduRtcRoomClient::startShareScreen()

          介绍

          屏幕共享。

          可通过该接口开启屏幕分享功能, 让其他用户看到你的屏幕操作。

          参数

          返回

          BaiduRtcRoomClient::stopShareScreen

          void BaiduRtcRoomClient::stopShareScreen()

          介绍

          停止屏幕共享。

          关闭屏幕分享功能。

          参数

          返回

          BaiduRtcRoomClient::startShareScreenWithSource

          void BaiduRtcRoomClient::startShareScreenWithSource(long long sourceId)

          介绍

          可通过该接口开启屏幕分享功能, 让其他用户看到你的屏幕操作,通过sourceId指定分享的屏幕。

          参数

          参数 类型 描述
          sourceId long long 屏幕ID,可通过getWindowSourceList获取,或者外部传入

          返回

          BaiduRtcRoomClient::getWindowSourceList

          void BaiduRtcRoomClient::getWindowSourceList(CaptureType type, int& count)

          介绍

          可通过该接口获取可共享屏幕/窗口列表

          参数

          参数 类型 描述
          type CaptureType 类型,桌面或者窗口
          count int& 列表长度

          返回

          BaiduRtcRoomClient::freeWindowSourceList

          void BaiduRtcRoomClient::freeWindowSourceList(WindowSource* sourceList, int length)

          介绍

          释放共享屏幕/窗口列表

          参数

          参数 类型 描述
          sourceList WindowSource* 列表指针
          length int 列表长度

          返回

          BaiduRtcRoomClient::startShareWindow

          void BaiduRtcRoomClient::startShareWindow(long long sourceId)

          介绍

          可通过该接口开启窗口分享功能, 让其他用户看到你的窗口操作;通过sourceId指定分享的窗口;

          参数

          参数 类型 描述
          sourceId long long 窗口Wid,通过getWindowSourceList获取,或者外部获取传入

          返回

          BaiduRtcRoomClient::stopShareWindow

          void BaiduRtcRoomClient::stopShareWindow()

          介绍

          关闭窗口分享功能

          参数

          返回

          消息接口

          BaiduRtcRoomClient::sendMessage

          void BaiduRtcRoomClient::sendMessage(const char* message)

          介绍

          发送消息。

          可通过该接口发送文本消息到聊天室,房间的其他人能接收到所发消息。

          参数

          参数 类型 描述
          message const char* 准备发的消息

          返回

          BaiduRtcRoomClient::registerRtcMessageListener

          void BaiduRtcRoomClient::registerRtcMessageListener(IRtcMessageListener* msgListener)

          介绍

          注册消息监听接口。

          用户可以实现参数定义的接口,并通过该接口注册,当sdk 启动后,可以收到来自sdk的消息,并做相应的处理。接口详细信息可查看头文件:BaiduRtcCommonDefine.h

          参数

          参数 类型 描述
          msgListener IRtcMessageListener* rtc sdk 消息上报接口

          返回

          状态获取接口

          BaiduRtcRoomClient::getRoomStates

          void BaiduRtcRoomClient::getRoomStates(RtcRoomUserInfo** userInfoList, int& userNumber)

          介绍

          查询房间信息。

          可通过该接口查询房间用户信息。

          参数

          参数 类型 描述
          userInfoList RtcRoomUserInfo** 准备发的消息
          userNumber int& 用户id

          返回

          BaiduRtcRoomClient::getConnectionStats

          ConnectionStats BaiduRtcRoomClient::getConnectionStats(ConnectionType connectionType)

          介绍

          获取当前网络状态。

          根据连接类型,返回用户当前的网络连接状态值。

          参数

          参数 类型 描述
          connectionType ConnectionType 网络连接类型,信令通道连接/媒体通道连接

          返回

          ConnectionStats 网络连接状态值

          其他接口

          BaiduRtcRoomClient::enableRtcStatsInfoDot

          void BaiduRtcRoomClient::enableRtcStatsInfoDot(bool isEnable)

          介绍

          RTC状态信息打点。

          是否开启 RTC 状态信息打点功能,默认开启。当开启打点时,日志信息会上传到百度日志统计 server,并通过图表的形式展示,可实时查询。

          参数

          参数 类型 描述
          isEnable bool 是否开启打点

          返回

          ConnectionStats 网络连接状态值

          getBaiduRtcSdkVersion

          void getBaiduRtcSdkVersion(char* version, int len)

          介绍

          获取SDK版本号。

          获取百度 RTC SDK 版本号。 参数

          参数 类型 描述
          version char* 版本号字符串
          int len 字符串长度

          返回

          enableBaiduRtcLog

          void enableBaiduRtcLog(bool isEnable)

          介绍

          日志功能。

          日志功能开关, 谨记在卸载 SDK 时需 disable。

          参数

          参数 类型 描述
          isEnable bool 若为 true, 开启日志功能, 开启日志功能后,会把日志保存到本地文件中;若为false 关闭日志功能。

          返回

          configStreamingAddr

          void configStreamingAddr(const char* url)

          介绍

          切换媒接入SERVER。

          当链路不稳定,或视频画面卡顿时,可使用该接口,切换媒体接入server. 切换后,需要重新进入房间,并发布流或拉流。

          参数

          参数 类型 描述
          url const char* 媒体服务器地址

          返回

          setVideoDevice

          void setVideoDevice(const char* deviceId)

          介绍

          设置视频设备。

          用户通过getVideoDeviceList 获取的设备信息列表,设置准备开启的视频设备。

          参数

          参数 类型 描述
          deviceId const char* 视频设备 id 或 name

          返回

          getVideoDeviceList

          RtcVideoDeviceInfo* getVideoDeviceList(int & deviceCount)

          介绍

          获取视频设备列表。

          获取当前可用的视频设备列表,用户可根据获取的列表,选择要开启的视频设备。

          参数

          参数 类型 描述
          deviceCount int& 可用设备数目

          返回

          RtcVideoDeviceInfo* 指向当前可用信息列表

          freeVideoDeviceList

          void freeVideoDeviceList(RtcVideoDeviceInfo* deviceInfoList)

          介绍

          释放视频设备列表。

          当用户调用 getVideoDeviceList 获取视频设备列表后,须使用改接口是否释放设备列表资源。

          参数

          参数 类型 描述
          deviceInfoList RtcVideoDeviceInfo* 当前可用信息列表

          返回

          上一篇
          开发环境搭建
          下一篇
          Linux SDK