所有文档

          实时音视频 RTC

          API

          初始化接口

          initWithAppID

          public static synchronized BaiduRtcRoom initWithAppID(Context context, String appId, String tokenStr)  {

          介绍

          SDK初始化。

          初始化 SDK 时调用。初始化 SDK 将生成 BaiduRtcRoom 对象, 初始化 SDK 失败会导致 SDK 功能异常。

          参数

          参数 类型 描述
          appId String RTC 基础业务单元的唯一标识
          tokenStr String RTC Server 端鉴权使用的字符串

          返回

          BaiduRtcRoom 实例成功,null 失败

          setParamSettings

          public abstract void setParamSettings(RtcParameterSettings paramSettings,RtcParameterSettings.RtcParamSettingType paramType);

          介绍

          音视频参数设置。

          设置音视频相关的参数。该函数在loginRoom 前调用,主要用于设置音视频采集,编解码相关的参数。

          参数

          参数 类型 描述
          paramSettings 该参数封装了音视频的一些参数,如video分辨率,fps, bitrate,音频采样率等
          paramType 参数类型,可指定设置某一项,还是所有参数都设置

          RtcParamSettingType 说明

              public boolean HasVideo = true;              // 是否采集视频
              public boolean HasAudio = true;              // 是否采集音频
              public boolean HasData = false;              // 是否开启数据通道
              public String VideoCodec = "h264";           // 视频编码类型
              public String AudioCodec = "opus";           // 音频编码类型
              public int AudioFrequency = 48000;           // 音频采样率
              public int AudioChannel = 1;                 // 音频通道
              public String VideoResolution = "640x480";   // 采集视频分辨率
              public int VideoWidth = 640;                 // 视频宽
              public int VideoHeight = 480;                // 视频高
              public int VideoFps = 20;                    // 视频帧率
              public int VideoMaxkbps = 1000;              // 视频最高码率
              public int VideoMinkbps = 1000;              // 视频最低码率
              public int ConnectionTimeoutMs = 5000;       // ss 连接超时时长
              public int ReadTimeoutMs = 5000;             // ss 读取超时时长
              public boolean AutoPublish = true;           // 是否自动发布流
              public boolean AutoSubScribe = true;         // 是否自动订阅流
              public int AudioContentType = 1;             // 音频类型
              public RtcParameterSettings.RtcVideoRenderMode VideoRenderMode; // 渲染模式

          返回

          setBaiduRtcRoomDelegate

          public abstract boolean setBaiduRtcRoomDelegate(BaiduRtcRoomDelegate baiduRtcRoomDelegate);

          介绍

          代理设置。

          设置 rtc room 代理对象。使用 rtc room 功能,初始化相关组件时需要设置代理对象,代理对象用户事件回调。未设置代理对象,或对象设置错误,可能导致无法收到相关回调。

          参数

          参数 类型 描述
          baiduRtcRoomDelegate BaiduRtcRoomDelegate 遵循 BaiduRtcRoomDelegate 协议的代理对象

          返回

          true 成功,false 失败

          setEngineStateStatistics

          public abstract void setEngineStateStatistics(boolean bOnStatistics);

          介绍

          引擎统计信息开关。

          当打开开关时 onEngineStatisticsInfo 函数会每隔2秒返回引擎的统计信息,并且可通过queryEngineStatisticsInfo主动函数查询到引擎统计信息

          参数

          参数 类型 描述
          bOnStatistics 是否打开rtc引擎统计信息, bOnStatistics = true,打开开关,bOnStatistics = false, 关闭引擎统计信息

          返回

          房间相关接口

          loginRtcRoomWithRoomName

           public abstract boolean loginRtcRoomWithRoomName(String roomName, 
           int userId, 
           String displayName, 
           boolean asPublisher,
           boolean asListener);
                
           

          介绍

          登录房间。

          登录成功后同一个房间的的成员能够互相看到和听到。Publisher 为发布音/视频的角色,Listener 为接收音/视频的角色。每一个房间里的用户可以同时为 Publisher 和 Listener,也可以选择性的Publisher 和 Listener。

          参数

          参数 类型 描述
          roomName String 房间名,长度不可超过 255 byte
          userId int 用户 id,每个房间的用户 ID 必须唯一
          displayName String 用户显示名
          asPublisher boolean 是否作为发布者
          asListener boolean 是否作为听众

          返回

          true 成功,false 失败

          异常

          如果失败,会通过onErrorInfoUpdate call back 返回错误信息。

          loginRtcRoomWithRoomName:isCompulsive

           public abstract boolean loginRtcRoomWithRoomName(String roomName, 
           int userId, 
           String displayName, 
           boolean isCompulsive);

          介绍

          强制登录房间。

          登录房间成功,在同一个房间的人能进行相互音视频聊天,如果失败,会通过onErrorInfoUpdate call back 返回错误信息。开启强制登录,若房间内之前存在同一userID用户,将被踢出,建议在断网重连或者初次登录失败时调用。

          参数

          参数 类型 描述
          roomName String 房间名,长度不可超过 255 byte
          userId int 用户 id,每个房间的用户 ID 必须唯一
          displayName String 用户显示名
          isCompulsive boolean true 强制登录;false 正常登录 默认正常登录

          返回

          true 成功,false 失败

          异常

          如果失败,会通过onErrorInfoUpdate call back 返回错误信息。

          logoutRtcRoom

          public abstract boolean logoutRtcRoom();

          介绍

          退出房间。

          执行logoutRtcRoom后,会停止音视频采集,断开与房间服务器的连接,取消音视频的传输,销毁音视频传输通道以及释放其他资源。

          参数

          返回

          true 成功,false 失败

          kickOffUserWithId

          public abstract void kickOffUserWithId(int userId); 

          介绍

          踢出某人。

          房管/主播/会议主持 把某人踢出聊天室。

          参数

          参数 类型 描述
          userId int 在房间中的用户的 用户ID

          返回

          shutUpUserWithId

          public abstract void shutUpUserWithId(int userId);

          介绍

          禁言某人。

          房管/主播/会议主持 禁止某人发言。

          参数

          参数 类型 描述
          userId int 在房间中的用户的 用户ID

          返回

          true 成功,false 失败

          queryUserListOfRoom

          public abstract void queryUserListOfRoom();

          介绍

          查询房间用户信息。

          获取房间中所有参与者的列表。

          参数

          返回

          用户信息列表

          发布/订阅相关接口

          startPublish

          public abstract void startPublish();

          介绍

          开始推流。

          主要用于直播场景,开始直播。

          参数

          返回

          stopPublish

          public abstract void stopPublish();

          介绍

          停止推流。

          结束直播,停止流的传输。

          参数

          返回

          subscribeStreaming

          public abstract void subscribeStreaming(int videoviewidx,long feedId);

          介绍

          订阅流。

          开始订阅流。

          参数

          参数 类型 描述
          videoviewidx int 视频窗口索引号
          feedId long 流的ID号

          返回

          stopSubscribeStreaming

          public abstract void stopSubscribeStreaming(long feedId);

          介绍

          停止订阅。

          停止订阅流。

          参数

          参数 类型 描述
          feedId long 流的ID号

          返回

          消息相关接口

          sendMessageToUser

          public abstract void sendMessageToUser(String msg, long id);

          介绍

          发送消息。

          id=0,房间内广播消息, id = userID,指定用户发送消息。

          参数

          参数 类型 描述
          msg String 消息
          id long 流的ID号

          返回

          setUserAttribute

          public abstract void setUserAttribute(String attribute);

          介绍

          用户属性设置。

          设置用户属性。

          参数

          参数 类型 描述
          attribute String 用户属性

          返回

          getUserAttribute

          public abstract void getUserAttribute(long feedid);

          介绍

          用户属性获取。

          获取用户属性。

          参数

          参数 类型 描述
          feedid long 流ID

          返回

          sendData

          public abstract void sendData(ByteBuffer data);

          介绍

          发送Data数据。

          Data 数据通道保证顺序性和完整性。 使用数据通道能够同时传输音视频之外的相关数据。

          参数

          参数 类型 描述
          data ByteBuffer 要发送的数据

          返回

          注意 发送Data 数据, 需要先打开datachannel 功能: RtcParameterSettings cfg = RtcParameterSettings.getDefaultSettings(); cfg.HasData = true; mVideoRoom.setParamSettings(cfg,RtcParameterSettings.RtcParamSettingType.RTC_PARAM_SETTINGS_ALL);

          视频相关接口

          startPreview

          public abstract void startPreview();

          介绍

          本地预览。

          打开camera,开始预览

          参数

          返回

          stopPreview

          public abstract void stopPreview();

          介绍

          停止预览。

          关闭camera, 停止本地预览。

          参数

          返回

          setLocalDisplay

          public abstract void setLocalDisplay(RTCVideoView localVideoView);

          介绍

          设置本地显示窗口。

          在 loginRoom 之前调用。loginRoom 之后,本地视频数据会显示到 localVideoView 窗口中,localVideoView 的位置大小要与采集的视频大小成比例。

          参数

          参数 类型 描述
          localVideoView RTCVideoView 本地显示窗口,用于显示camera采集的视频数据

          返回

          setRemoteDisplay

          public abstract void setRemoteDisplay(RTCVideoView remoteVideoView);

          介绍

          设置远端显示窗口。

          在 loginRoom 之前调用。loginRoom 之后,远端视频数据会显示到 remoteVideoView,remoteVideoView的大小要与采集的视频大小成比例。

          参数

          参数 类型 描述
          remoteVideoView RTCVideoView 远端画面显示窗口, 用于显示远端用户传输过来的视频数据

          返回

          setRemoteDisplayGroup

          public abstract void setRemoteDisplayGroup(RTCVideoView[] remoteVideoViewGroup);

          介绍

          设置远端显示 viewGroup。

          在 loginRoom 之前调用。loginRoom 之后,远端视频数据会显示到 remoteVideoViewGroup 列表中,remoteVideoView 的大小要与采集的视频大小成比例

          参数

          参数 类型 描述
          remoteVideoViewGroup RTCVideoView[] 远端画面显示view列表, 用于显示远端用户传输过来的视频数据

          返回

          setVideoCapture

          public abstract void setVideoCapture(RTCVideoCapture rtcVideoCapture);

          介绍

          设置视频采集 rtcVideoCapture。

          在 loginRoom 之前调用。loginRoom 之后,会使用 rtcVideoCapture 采集视频数据。

          参数

          参数 类型 描述
          rtcVideoCapture RTCVideoCapture 采集视频类

          返回

          enableExternalVideoCapturer

          public abstract void enableExternalVideoCapturer(boolean isEnable);

          介绍

          使能视频外部采集。

          使能视频外部采集。

          参数

          参数 类型 描述
          isEnable boolean true:开启;false:关闭

          返回

          addExternalRenderer

          public abstract void addExternalRenderer(long userId, RTCVideoExternalRender render);

          介绍

          设置外部渲染。

          为指定用户设置外部视频渲染器,外部采集模式若不设置外部渲染器则使用默认外部渲染器。

          参数

          参数 类型 描述
          userId long 用户userID
          render RTCVideoExternalRender 渲染器

          返回

          removeExternalRenderer

          public abstract void removeExternalRenderer(long userId);

          介绍

          移出外部渲染器。

          移除指定用户的外部渲染器。

          参数

          参数 类型 描述
          userId long 用户userID

          返回

          setExternalSurface

          public abstract void setExternalSurface(long userId, Surface remoteSurface);

          介绍

          设置外部渲染Surface。

          设置外部渲染Surface,该接口需在主线程调用。

          参数

          参数 类型 描述
          userId long 用户userID
          remoteSurface Surface surface

          返回

          changeSurfaceSize

          public abstract void changeSurfaceSize(long userId, int width, int height);

          介绍

          外部surface 尺寸变更。

          外部surface 尺寸变更。

          参数

          参数 类型 描述
          userId long 用户userID
          width int
          height int

          返回

          destroyExternalSurface

          public abstract void destroyExternalSurface(long userId, Surface remoteSurface);

          介绍

          销毁指定用户对应的surface。

          销毁指定用户对应的surface 及 外部渲染器。

          参数

          参数 类型 描述
          userId long 用户userID
          remoteSurface Surface surface

          返回

          setRemoteVideoPlayState

          public abstract void setRemoteVideoPlayState(boolean stats, long userId);

          介绍

          指定远端画面暂停/恢复播放。

          通过控制流的拉取与否,指定远端画面暂停/恢复播放。

          参数

          参数 类型 描述
          stats boolean true:拉取;false:停止拉取
          userId long 用户ID

          返回

          getRemoteVideoDimension

          public abstract RtcRoomVideoDimension getRemoteVideoDimension(long userId);

          介绍

          获取视频video dimension。

          当远端视频达到后,可通过该接口获取远端视频流的Dimension信息。

          参数

          参数 类型 描述
          userId long 用户ID

          返回

          RtcRoomVideoDimension

          摄像头相关接口

          switchCamera

          public abstract void switchCamera();

          介绍

          切换摄像头。

          前/后摄像头切换。

          参数

          返回

          muteCamera

          public abstract void muteCamera(boolean muted);

          介绍

          关闭/打开摄像头。

          在关闭摄像头后,本地无法预览,且不传输本地视频数据给对方。

          参数

          参数 类型 描述
          muted boolean 是否打开摄像头

          返回

          cameraFocusWithPoint

          public abstract void cameraFocusWithPoint(int point,int size);

          介绍

          摄像头对焦。

          支持手动和自动对焦。 默认自动对焦,调用此函数则进行手动对焦。

          参数

          参数 类型 描述
          point int 对焦点坐标
          size int camera预览view尺寸

          返回

          音频相关接口

          muteMicphone

          public abstract void muteMicphone(boolean muted);

          介绍

          关闭麦克风。

          停止音频的采集。

          参数

          参数 类型 描述
          muted boolean true表示要静音, false表示取消静音

          返回

          switchLoundSpeaker

          public abstract void switchLoundSpeaker();

          介绍

          开关扬声器。

          听筒与扬声器切换(免提功能)

          参数

          返回

          presetLoudSpeaker

          public abstract void presetLoudSpeaker(boolean isPresetLoudSpeaker);

          介绍

          预置听筒/扬声器。

          参数

          参数 类型 描述
          isPresetLoudSpeaker boolean true表示扬声器, false表示听筒

          返回

          getRemoteAudioLevels

          public abstract RtcRoomAudioLevel[] getRemoteAudioLevels();

          介绍

          语音激励接口。

          获取用户语音激励。

          参数

          返回

          RtcRoomAudioLevel[]

          setRemoteAudioPlayState

          public abstract void setRemoteAudioPlayState(boolean stats, long userId);

          介绍

          指定远端音频暂停/恢复播放。

          通过控制音频流拉取,控制指定远端用户音频暂停/恢复播放。

          参数

          参数 类型 描述
          stats boolean true:拉取,false:停止拉取 默认拉取
          userId long 用户ID

          返回

          RtcRoomAudioLevel[]

          setAuidoSamplesReadyCallback

          public abstract void setAuidoSamplesReadyCallback(RTCAudioSamples.RTCSamplesReadyCallback samplesReadyCallback);

          介绍

          设置音频接收samplesReadyCallback。

          在loginRoom之前调用,开启了Mic之后会回调音频数据。

          参数

          参数 类型 描述
          samplesReadyCallback RTCAudioSamples.RTCSamplesReadyCallback 音频接收

          返回

          美颜相关接口

          setWhitenFactor

          public abstract void setWhitenFactor(float factor);

          介绍

          设置美白度。

          调节美白系数

          参数

          参数 类型 描述
          factor float 在美颜中的美白因子,取值0~1

          返回

          setRedenFactor

          public abstract void setRedenFactor(float factor);

          介绍

          设置红润度。

          调节红润系数

          参数

          参数 类型 描述
          factor float 在美颜中的红润因子,取值0~1

          返回

          setBuffingFactor

          public abstract void setBuffingFactor(float factor);

          介绍

          设置磨皮度。

          调节磨皮系数

          参数

          参数 类型 描述
          factor float 在美颜中的磨皮因子

          返回

          转推配置相关接口

          configLiveServerWithUrl

          public abstract boolean configLiveServerWithUrl(String url, 
                                                          boolean isMix,
                                                          boolean isRecording, 
                                                          String mixTemplate,
                                                          RtcLiveTransferMode transferMode);;

          介绍

          server端推流参数配置。

          该接口用于配置server推流的参数,聊天室模式:在同一个rtc房间的所有参与者在混流后,直接转推到一个指定的直播房间;主播转推模式:主播推向不同的直播房间

          参数

          参数 类型 描述
          url String rtmp推流地址
          isMix boolean 是否做混流处理
          isRecording boolean 是否录制
          mixTemplate String 混流模版
          transferMode RtcLiveTransferMode 转推模式: 聊天室模式, 主播转推模式

          返回

          true 设置成功, false 失败。

          通知相关接口

          onRoomEventUpdate

          public abstract void onRoomEventUpdate(int roomEvents);

          介绍

          房间用户状态信息通知。

          房间中用户加入或离开时,通知房间中其他用户,其他用户可接收到房间中他人离开的信息。

          参数

          参数 类型 描述
          roomEvents int 房间事件信息,具体信息参考 BaiduRtcRoomApiDefines.h

          回调事件

              public static final int RTC_ROOM_EVENT_LOGIN_OK = 100; // 登录房间成功
              public static final int RTC_ROOM_EVENT_LOGIN_TIMEOUT = 101; // 登录房间超时
              public static final int RTC_ROOM_EVENT_LOGIN_ERROR = 102; // 登录房间出错
              public static final int RTC_ROOM_EVENT_CONNECTION_LOST = 103; // 与服务器连接丢失
              public static final int RTC_ROOM_EVENT_REMOTE_COMING = 104; // 开始订阅远端流
              public static final int RTC_ROOM_EVENT_REMOTE_LEAVING = 105; // 远端视频正在离开
              public static final int RTC_ROOM_EVENT_REMOTE_RENDERING = 106; // 远端视频到达
              public static final int RTC_ROOM_EVENT_REMOTE_GONE = 107; // 远端视频离开
              public static final int RTC_ROOM_EVENTS_DISBAND_ROOM = 112; // 解散房间
              public static final int RTC_ROOM_EVENTS_SOMEBODY_SHUTUPED = 113; // 禁言
              public static final int RTC_ROOM_EVENTS_SOMEBODY_DISSHUTUPED = 114; // 解禁
              public static final int RTC_ROOM_EVENTS_SOMEBODY_KICKOFFED = 115; // 踢人
              public static final int RTC_ROOM_EVENTS_LIVE_PUBLISH_SUCCESS = 116; // 转推成功
              public static final int RTC_ROOM_EVENTS_LIVE_PUBLISH_FAIL = 117; // 转推失败
              public static final int RTC_ROOM_EVENTS_LIVE_INTRERRUPT = 118; // 转推中断
              public static final int RTC_ROOM_EVENT_AVAILABLE_SEND_BITRATE = 200; // 当前发送端可用上行带宽
              public static final int RTC_ROOM_EVENT_ON_USER_JOINED_ROOM = 300; // 用户进入房间
              public static final int RTC_ROOM_EVENT_ON_USER_LEAVING_ROOM = 301; // 用户离开房间
              public static final int RTC_ROOM_EVENT_ON_USER_MESSAGE = 302; // 消息
              public static final int RTC_ROOM_EVENT_ON_USER_ATTRIBUTE = 303; // 用户属性

          onPeerConnectStateUpdate

          public abstract void onPeerConnectStateUpdate(int connecStates);

          介绍

          server连接状态通知。

          当与server端连接状态变化时,通知 app 层做后续处理。

          参数

          参数 类型 描述
          connecStates int 连接状态码

          回调事件

              public static final int RTC_STATE_STREAM_UP = 2000; 媒体流建立
              public static final int RTC_STATE_SENDING_MEDIA_OK = 2001; 媒体发送成功
              public static final int RTC_STATE_SENDING_MEDIA_FAILED = 2002; 媒体发送失败
              public static final int RTC_STATE_STREAM_DOWN = 2003; 媒体断开

          onStreamInfoUpdate

          public abstract void onStreamInfoUpdate(String [] streamId);

          介绍

          媒体流信息通知。

          当有远端或本地流信息到来时,通知app层做后续处理。

          参数

          参数 类型 描述
          streamId string数组 流信息ID

          回调事件

          媒体流ID。

          onErrorInfoUpdate

          public abstract void onErrorInfoUpdate(int errorInfo);

          介绍

          错误信息通知。

          RTC通信过程中,错误信息的反馈。

          参数

          参数 类型 描述
          errorInfo int 错误信息

          回调事件

              // .so later downloading and loading error codes.
              public static final int RTC_ROOM_SO_LATER_DOWNLOADING_FAIL = 400;
              public static final int RTC_ROOM_SO_LATER_LOADING_FAIL = 401;
              // external renderer error
              // surface has be created by existed user
              public static final int RTC_ROOM_SET_EXTERNAL_SURFACE_ERROR = 600;
              public static final int RTC_ROOM_PEER_CONNECTION_ERROR = 10000;

          返回

          onEngineStatisticsInfo

          public abstract void onEngineStatisticsInfo(int statistics);

          介绍

          RTC引擎状态信息统计。

          该callback返回当前rtc engine的一些参数和性能信息,如传输fps,码率,网络状况,cpu等信息给app。

          参数

          参数 类型 描述
          statistics int rtc引擎状态信息统计数组

          返回

          onRoomDataMessage

          public abstract void onRoomDataMessage(ByteBuffer data);

          介绍

          数据接收。

          该callback返回当前rtc engine收到的数据消息。

          参数

          参数 类型 描述
          data ByteBuffer 引擎返回的数据消息

          返回

          其他接口

          version

          public static String version() 

          介绍

          SDK 版本号获取。

          获取当前SDK版本号

          参数

          返回

          返回当前SDK版本号

          upLoadLog

          public abstract void upLoadLog();

          介绍

          日志上传。

          上传日志到后台便于分析问题

          参数

          返回

          setUseTestEnv

          public static void setUseTestEnv(boolean isUseTestEnv) 

          介绍

          是否启用测试环境。

          建议在初始化 SDK 前调用。测试环境是使用由百度提供的RTC测试环境。建议开发者在开发阶段设置为测试环境,上线前需切换为生产环境运营。 不使用测试环境, 默认使用生产环境。

          参数

          参数 类型 描述
          isUseTestEnv boolean 是否启用测试环境,true 启用,false 不启用。默认为 false

          返回

          setVerbose

          public static void setVerbose(boolean bOnVerbose) 

          介绍

          是否打开调试信息。

          建议在初始化 SDK 前调用。建议在调试阶段打开此开关,打开此开关后,将打开日志信息,方便调试。

          参数

          参数 类型 描述
          bOnVerbose boolean 是否打开调试信息,true 打开,false 不打开。默认为 false

          返回

          queryEngineStatisticsInfo

          public abstract void queryEngineStatisticsInfo();

          介绍

          查询RTC引擎统计信息。

          用于获取rtc engine 的一些运行状态信息,如cpu, video codec, fps等信息。

          参数

          返回

          rtc engine状态统计信息

          enableStatsToServer

          public abstract void enableStatsToServer(boolean isEnable, String qualityMonitorEnv) 

          介绍

          RTC质量监控数据上报。

          预置接口,监控信息上报开关 当打开开关时,上报帧率、码率、分辨率、丢包率等监控信息到服务端,console可查。

          参数

          参数 类型 描述
          isEnable boolean 是否打开rtc质量监控数据上报,true 打开,false不打开。默认为 false
          qualityMonitorEnv String 线上环境:"online" 沙盒:"qa"。 默认值为 "online"

          返回

          上一篇
          集成SDK
          下一篇
          Web-SDK