实时音视频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::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