方法

引擎管理

方法 描述
createEngine 创建引擎对象

如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。

如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。
destroyEngine 销毁由 createEngine 所创建引擎实例,并释放所有相关资源
getSdkVersion 获取 SDK 当前的版本号。
getErrorDescription 获取SDK内各种错误码、警告码的描述文字
setRtcEngineEventHandler 设置引擎事件回调的接收类,必须继承自 IRTCEngineEventHandler 。
setBusinessId 设置业务标识参数

可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
setRuntimeParameters 设置运行时的参数
feedback 通话结束,将用户反馈的问题上报到 RTC

房间管理

方法 描述
joinRoom 创建/加入房间:房间不存在时即创建房间;房间存在时即加入这个房间。

同一房间内的用户间可以相互通话。

进房后重复调用无效,用户必须调用 leaveRoom 退出当前房间后,才能加入下一个房间。
leaveRoom 离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
pauseAllSubscribedStream 暂停接收来自远端的媒体流。
resumeAllSubscribedStream 恢复接收来自远端的媒体流
updateToken 更新 Token。

用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。

调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,并会收到 onJoinRoomResult 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
setUserVisibility 设置用户可见性。默认可见。
publishStream 在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
unpublishStream 停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
subscribeStream 订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。
unsubscribeStream 取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。
subscribeScreen 订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。
unsubscribeScreen 取消订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。
startForwardStreamToRooms 开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
updateForwardStreamToRooms 更新跨房间媒体流转发信息。

通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwarStreamStateChangedonForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
stopForwardStreamToRooms 停止跨房间媒体流转发。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
pauseForwardStreamToAllRooms 暂停跨房间媒体流转发。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。
resumeForwardStreamToAllRooms 恢复跨房间媒体流转发。
调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

音频管理

方法 描述
startAudioCapture 开启内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法开启后,本地用户会收到 onMediaDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
stopAudioCapture 立即关闭内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopAudioCapture 的回调。
setAudioScenario 设置音频场景类型
setAudioProfile 设置音质档位。你应根据业务场景需要选择适合的音质档位。
setAudioPlaybackDevice 设置音频播放设备为扬声器或者听筒,默认使用扬声器。

音频播放设备发生变化时,会收到 onAudioPlaybackDeviceChanged 回调。
setPlaybackVolume 调节本地播放的所有远端用户混音后的音量。
setRemoteAudioPlaybackVolume 调节来自指定远端用户的音频播放音量,默认为 100。
setEarMonitorMode 打开/关闭耳返功能。
setEarMonitorVolume 设置耳返音量。
enableAudioPropertiesReport 启用音频信息提示。
sendStreamSyncInfo 发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 onStreamSyncInfoReceived 回调。
enableAudioSpatialRender 开启或关闭空间音频效果。
updatePosition 更新自己的位置坐标。
updateSelfOrientation 更新自己的朝向。本地朝向的设置只影响本地听到的音频效果,不影响本地发出的音频效果。
setLocalVoicePitch 开启本地语音变调功能,多用于 K 歌场景。

使用该方法,你可以对本地语音的音调进行升调或降调等调整。
enableVocalInstrumentBalance 开启/关闭音量均衡功能。

开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。
enablePlaybackDucking 打开/关闭音量闪避功能,适用于“一起看”等场景。

开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

视频管理

方法 描述
startVideoCapture 立即开启内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

调用该方法后,本地用户会收到 onMediaDeviceStateChanged 的回调。

本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
stopVideoCapture 立即关闭内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
setLocalVideoCanvas 设置本地视频渲染时使用的视图,并设置渲染模式。
setVideoRotationMode 设置采集视频的旋转模式。默认以 App 方向为旋转参考系。

接收端渲染视频时,将按照和发送端相同的方式进行旋转。
setLocalVideoMirrorType 为采集到的视频流开启镜像
switchCamera 切换视频内部采集时使用的前置/后置摄像头

调用此接口后,在本地会触发 onMediaDeviceStateChanged 回调。
setVideoSourceType 设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
setVideoCaptureConfig 设置 RTC SDK 内部采集时的视频采集参数。

如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数包括模式、分辨率、帧率。
setVideoEncoderConfig 设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
sendSEIMessage 在视频通信时,通过视频帧发送 SEI 数据。
setExternalVideoEncoderEventHandler 注册自定义编码帧推送事件回调
pushExternalEncodedVideoFrame 推送自定义编码后的视频流
setVideoDecoderConfig 在订阅远端视频流之前,设置远端视频数据解码方式
requestRemoteVideoKeyFrame 在订阅远端视频流之后,向远端请求关键帧
registerRemoteEncodedVideoFrameObserver 注册远端编码后视频数据回調。

完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 OnRemoteEncodedVideoFrame 回调
isCameraTorchSupported 检测当前使用的摄像头(前置/后置),是否支持闪光灯。
isCameraZoomSupported 检测当前使用的摄像头(前置/后置),是否支持变焦(数码/光学变焦)。
setCameraZoomRatio 设置当前使用的摄像头(前置/后置)的变焦倍数
getCameraZoomMaxRatio 获取当前使用的摄像头(前置/后置)的最大变焦倍数
setCameraTorch 打开/关闭当前使用的摄像头(前置/后置)的闪光灯
updateLocalVideoCanvas 修改本地视频渲染模式和背景色。
updateRemoteVideoCanvas 修改远端视频渲染模式和背景色。

屏幕共享

方法 描述
publishScreen 在当前所在房间内发布本地屏幕共享音视频流
unpublishScreen 停止将本地屏幕共享音视频流发布到当前所在房间中
startScreenCapture 使用 RTC SDK 内部采集模块开始采集屏幕音频流和(或)视频流。
updateScreenCapture 使用 RTC SDK 内部屏幕采集后,更新采集的媒体类型。
stopScreenCapture 在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。
pushScreenFrame 推送屏幕视频帧
setScreenAudioSourceType 在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)
setScreenAudioStreamIndex 在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式
pushScreenAudioFrame 使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。

实时消息通信

方法 描述
sendRoomMessage 给房间内的所有其他用户群发文本消息。
sendRoomBinaryMessage 给房间内的所有其他用户群发二进制消息。
sendUserMessage 给房间内指定的用户发送点对点文本消息。
sendUserBinaryMessage 给房间内指定的用户发送点对点二进制消息。
login 必须先登录注册一个 uid,才能发送房间外消息和向业务服务器发送消息
logout 调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
updateLoginToken 更新用户用于登录的 Token

Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 LOGIN_ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
setServerParams 设置业务服务器参数

客户端调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。
getPeerOnlineStatus 查询对端用户或本端用户的登录状态
sendUserMessageOutsideRoom 给房间外指定的用户发送文本消息(P2P)
sendUserBinaryMessageOutsideRoom 给房间外指定的用户发送二进制消息(P2P)
sendServerMessage 客户端给业务服务器发送文本消息(P2Server)
sendServerBinaryMessage 客户端给业务服务器发送二进制消息(P2Server)

混音

方法 描述
getAudioMixingManager 混音管理接口创建
startAudioMixing 开始播放音频文件。

可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。
stopAudioMixing 停止播放音频文件
pauseAudioMixing 暂停播放音频文件
resumeAudioMixing 恢复播放音频文件
preloadAudioMixing 预加载指定音频文件到内存中,以避免频繁播放时的重复加载。
unloadAudioMixing 卸载指定音频文件
setAudioMixingVolume 调节混音的音量大小,包括音频文件混音和 PCM 混音。
getAudioMixingDuration 获取音频文件时长
getAudioMixingCurrentPosition 获取音频文件播放进度
setAudioMixingPosition 设置音频文件的起始播放位置
setAudioMixingDualMonoMode 设置当前音频文件的声道模式
enableAudioMixingFrame 启动 PCM 音频数据混音
disableAudioMixingFrame 关闭 PCM 混音
pushAudioMixingFrame 推送 PCM 音频帧数据用于混音
setAudioMixingProgressInterval 设置混音时音频文件播放进度回调的间隔
getAudioTrackCount 获取当前音频文件的音轨索引
selectAudioTrack 指定当前音频文件的播放音轨
setAudioMixingPitch 开启本地播放音乐文件变调功能,多用于 K 歌场景。

使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。
setAudioMixingLoudness 如果你需要使用 enableVocalInstrumentBalance 对混音使音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。

美声特效管理

方法 描述
setVoiceChangerType 设置变声特效类型
setVoiceReverbType 设置混响特效类型

自定义视频采集渲染

方法 描述
setLocalVideoSink 将本地视频流与自定义渲染器绑定。
setRemoteVideoSink 将远端视频流与自定义渲染器绑定。
setRemoteVideoCanvas 渲染来自指定远端用户的视频流时,设置使用的视图和渲染模式。

要解除绑定,将 videoCanvas 设置为空。
pushExternalVideoFrame 推送外部视频帧。
pushExternalVideoFrame 推送外部视频帧。
pushExternalVideoFrame 推送外部视频帧。
pushExternalVideoFrame 推送外部视频帧。

视频特效

方法 描述
checkVideoEffectLicense 视频特效许可证检查
initVirtualBackground 虚拟背景功能初始化。
enableVirtualBackground 开启虚拟背景。
disableVirtualBackground 关闭虚拟背景。
setVideoEffectAlgoModelPath 设置视频特效算法模型路径
enableVideoEffect 创建/销毁视频特效引擎
setVideoEffectNodes 设置视频特效素材包
updateVideoEffectNode 设置特效强度
setVideoEffectColorFilter 设置颜色滤镜
setVideoEffectColorFilterIntensity 设置已启用的颜色滤镜强度
registerFaceDetectionObserver 设置人脸检测结果回调观察者

通过此观察者,你会周期性收到 onFaceDetectResult。

视频处理

方法 描述
registerLocalVideoProcessor 设置自定义视频前处理器。

使用这个视频前处理器,你能够调用 processVideoFrame 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。
processVideoFrame 获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessor 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。
onGLEnvInitiated OpenGL 环境创建完成时,收到此回调。
onGLEnvRelease OpenGL 环境即将销毁时,收到此回调。此时,你可以释放纹理等资源。

视频数据回调

方法 描述
registerLocalEncodedVideoFrameObserver 注册本地视频帧监测器。

无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户。

转推直播

方法 描述
startLiveTranscoding 新增转推直播任务,并设置合流的视频视图布局和音频属性。

同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。
stopLiveTranscoding 停止转推直播。

关于启动转推直播,参看 startLiveTranscoding。
updateLiveTranscoding 更新转推直播参数。

使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。

云端渲染

方法 描述
startCloudRendering 开启云端渲染
updateCloudRendering 更新云端渲染参数
stopCloudRendering 关闭云端渲染

自定义音频采集渲染

方法 描述
enableExternalAudioDevice 启用自定义音频采集和渲染。
disableExternalAudioDevice 禁用自定义音频采集和渲染。
pushExternalAudioFrame 推送自定义采集的音频数据到 RTC SDK。
pullExternalAudioFrame 拉取音频数据,用于外部播放。

音频数据回调

方法 描述
setRecordingAudioFrameParameters 设置本地麦克风录制的音频数据回调参数
setPlaybackAudioFrameParameters 设置远端所有用户音频数据混音后的音频数据回调参数
setMixedAudioFrameParameters 设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数
registerAudioFrameObserver 注册音频数据回调观察者。

成功注册后,IAudioFrameObserver 会触发相关回调。

音频处理

方法 描述
registerLocalAudioProcessor 设置自定义音频处理器。

使用该处理器,你可以调用 processAudioFrame 对 RTC SDK 采集得到的音频帧进行自定义处理,并将处理后的音频帧用于 RTC 音视频通信。

SDK 只持有 processor 的弱引用,你应保证其生命周期。

音视频回退

方法 描述
setPublishFallbackOption 设置发布的音视频流回退选项。

你可以调用这个接口来设置网络情况不佳或性能不足时只发送小流,以保证通话质量。
setRemoteUserPriority 设置用户优先级。

加密

方法 描述
setEncryptInfo 设置AES加密算法和加密密钥

有四种内置的加密算法,为 AES-128-CBC,AES-256-CBC,AES-128-ECB,AES-256-ECB
setCustomizeEncryptHandler 设置自定义加密方法
自定义加密方法需要实现对应的加密/解密方法

多房间

方法 描述
createRoom 创建房间
多次调用此方法以创建多个 IRTCRoom 实例。分别调用各 IRTCRoom 实例中的 joinRoom 方法,同时加入多个房间。多房间模式下,用户可以同时订阅各房间的音视频流。
destroy 退出并销毁调用 createRoom 所创建的房间。
joinRoom 加入房间。

多房间场景下,调用 createRoom 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。
setRTCRoomEventHandler 通过设置房间事件 handler,监听此对象对应的回调事件。
leaveRoom 离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
setUserVisibility 设置用户可见性。默认可见。
updateToken 更新 Token。

用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。

调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
sendUserMessage 给房间内指定的用户发送点对点文本消息
sendUserBinaryMessage 给房间内指定的用户发送点对点二进制消息。
sendRoomMessage 给房间内的所有其他用户群发文本消息。
sendRoomBinaryMessage 给房间内的所有其他用户群发二进制消息。
publishStream 在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
unpublishStream 停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
publishScreen 在当前所在房间内发布本地屏幕共享音视频流
unpublishScreen 停止将本地屏幕共享音视频流发布到当前所在房间中
subscribeStream 订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。
unsubscribeStream 取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。
subscribeScreen 订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。
unsubscribeScreen 取消订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。
pauseAllSubscribedStream 暂停接收来自远端的媒体流。
resumeAllSubscribedStream 恢复接收来自远端的媒体流
startLiveTranscoding 新增转推直播任务,并设置合流的视频视图布局和音频属性。

同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。
stopLiveTranscoding 停止转推直播。

关于启动转推直播,参看 startLiveTranscoding。
updateLiveTranscoding 更新转推直播参数。

使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
startForwardStreamToRooms 开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
updateForwardStreamToRooms 更新跨房间媒体流转发信息。

通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwarStreamStateChangedonForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
stopForwardStreamToRooms 停止跨房间媒体流转发。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
pauseForwardStreamToAllRooms 暂停跨房间媒体流转发。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。
resumeForwardStreamToAllRooms 恢复跨房间媒体流转发。
调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

语音识别服务

方法 描述
startASR 开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。
stopASR 关闭语音识别服务

本地录制

方法 描述
startFileRecording 该方法将通话过程中的音视频数据录制到本地的文件中。
stopFileRecording 停止本地录制

通话前网络探测

方法 描述
startNetworkDetection 开启通话前网络探测
stopNetworkDetection 停止通话前网络探测

音量管理

方法 描述
setCaptureVolume 调节音频采集音量

位置语音

方法 描述
getPositionAudioRender 获取位置音频接口实例,包括范围语音、空间语音等和位置相关的音频接口。

回调

引擎管理

回调 描述
onNetworkQuality 加入房间后, 以 2 秒 1 次的频率,报告用户的网络质量信息
onNetworkTypeChanged SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
onConnectionStateChanged 回调 SDK 与信令服务器连接状态相关事件。当 SDK 与信令服务器的网络连接状态改变时回调该事件。
onLogReport 上报日志时回调该事件。
onMediaDeviceStateChanged 媒体设备状态回调。提示音频采集、音频播放、摄像头视频采集、屏幕视频采集四种媒体设备的状态。
onMediaDeviceWarning 媒体设备警告回调。媒体设备包括:音频采集设备、音频渲染设备、和视频采集设备。
onHttpsProxyState HTTPS 代理连接状态改变时,收到该回调。
onSocks5ProxyState SOCKS5 代理状态改变时,收到该回调。

房间管理

回调 描述
onJoinRoomResult 首次加入房间/重连加入房间的回调。此回调表示调用 joinRoom 的结果,根据错误码判断成功/失败以及区别是否为重连。
onLeaveRoom 离开房间成功回调。

用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。
onUserJoined 远端可见用户加入房间,或房内不可见用户切换为可见的回调。

+ 远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。

+ 远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。

+ 房间内不可见远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。

+ 新进房用户也会收到进房前已在房内的可见用户的进房回调通知。
onUserLeave 发生以下情形时,本地用户会收到此事件:

+ 远端可见用户调用 leaveRoom 方法离开房间时;

+ 远端可见用户调用 setUserVisibility 方法切换至不可见时。

+ 远端可见角色用户断网,且一直未恢复。
onUserPublishStream 房间内新增远端摄像头/麦克风采集的媒体流的回调。
onUserUnPublishStream 房间内远端摄像头/麦克风采集的媒体流移除的回调。
onUserPublishScreen 房间内新增远端屏幕共享音视频流的回调。
onUserUnPublishScreen 房间内远端屏幕共享音视频流移除的回调。
onAudioFrameSendStateChanged 本地音频首帧发送状态发生改变时,收到此回调
onVideoFrameSendStateChanged 本地视频首帧发送状态发生改变时,收到此回调
onScreenVideoFrameSendStateChanged 屏幕共享流的视频首帧发送状态发生改变时,收到此回调
onAudioFramePlayStateChanged 音频首帧播放状态发生改变时,收到此回调
onVideoFramePlayStateChanged 视频首帧播放状态发生改变时,收到此回调
onScreenVideoFramePlayStateChanged 屏幕共享流视频首帧播放状态发生改变时,收到此回调

音频管理

回调 描述
onUserStartAudioCapture 房间内的可见用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
onUserStopAudioCapture 房间内的可见用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
onLocalAudioPropertiesReport 调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。

本地音频包括使用 RTC SDK 内部机制采集的麦克风音频和屏幕音频。
onRemoteAudioPropertiesReport 远端用户进房后,本地调用 enableAudioPropertiesReport ,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。

远端用户的音频包括使用 RTC SDK 内部机制/自定义机制采集的麦克风音频和屏幕音频。
onStreamSyncInfoReceived 音频流同步信息回调。可以通过此回调,在远端用户调用 sendStreamSyncInfo 发送音频流同步消息后,收到远端发送的音频流同步信息。
onActiveSpeaker 调用 enableAudioPropertiesReport 后,根据设置的 AudioPropertiesConfig.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。

视频管理

回调 描述
OnStart 提示自定义编码帧可以开始推送的回调。

收到该回调后,你即可调用 pushExternalEncodedVideoFrame 向 SDK 推送自定义编码视频帧
OnStop 当收到该回调时,你需停止向 SDK 推送自定义编码视频帧
OnRateUpdate 当自定义编码流的帧率或码率发生变化时,触发该回调
OnRequestKeyFrame 提示流发布端需重新生成关键帧的回调
onUserStartVideoCapture 房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此回调。
onUserStopVideoCapture 房间内的可见用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此回调。
onLocalVideoStateChanged 本地视频流的状态发生改变时,收到该事件。
onRemoteVideoStateChanged 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
onFirstRemoteVideoFrameRendered SDK 内部渲染成功远端视频流首帧后,收到此回调。
onFirstLocalVideoFrameCaptured RTC SDK 在本地完成第一帧视频帧或屏幕视频帧采集时,收到此回调。
onLocalVideoSizeChanged 本地视频大小或旋转信息发生改变时,收到此回调。
onRemoteVideoSizeChanged 远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。
onSEIMessageReceived 收到通过调用 sendSEIMessage 发送带有 SEI 消息的视频帧时,收到此回调
onVideoStreamBanned 通过调用服务端 MuteUser/UnmuteUser 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。
onFirstRemoteVideoFrameDecoded SDK 接收并解码远端视频流首帧后,收到此回调。

实时消息通信

回调 描述
onRoomMessageReceived 接收到房间内广播消息的回调。

房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。
onRoomBinaryMessageReceived 接收到房间内广播二进制消息的回调。

房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。
onUserMessageReceived 收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。
onUserBinaryMessageReceived 收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。
onUserMessageSendResult 向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。
onRoomMessageSendResult 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
onLoginResult 登录结果回调
onLogout 登出结果回调
onServerParamsSetResult 设置业务服务器参数的返回结果
onGetPeerOnlineStatus 查询对端或本端用户登录状态的返回结果
onUserMessageReceivedOutsideRoom 收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调
onUserBinaryMessageReceivedOutsideRoom 收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调
onUserMessageSendResultOutsideRoom 给房间外指定的用户发送消息的回调
onServerMessageSendResult 给业务服务器发送消息的回调

混音

回调 描述
onAudioMixingStateChanged 音频混音文件播放状态改变时回调
onAudioMixingPlayingProgress 混音音频文件播放进度回调

视频特效

回调 描述
onFaceDetectResult CV SDK 进行人脸检测结果的回调。

调用 registerFaceDetectionObserver 注册了 IFaceDetectionObserver,并使用 RTC SDK 中包含的 CV SDK 进行视频特效处理时,你会收到此回调。

视频数据回调

回调 描述
onLocalEncodedVideoFrame 调用 registerLocalEncodedVideoFrameObserver 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。
OnRemoteEncodedVideoFrame 调用 registerRemoteEncodedVideoFrameObserver 后,SDK 监测到远端编码后视频数据时,触发该回调

转推直播

回调 描述
isSupportClientPushStream 是否具有推流能力。

+ false:不具备推流能力(默认值)

+ true:具备推流能力
onStreamMixingEvent 转推直播状态回调
onMixingAudioFrame 端云一体合流音频 PCM 回调
onMixingVideoFrame 端云一体合流视频 YUV 回调
onDataFrame 端云一体合流视频 SEI 数据回调

音频数据回调

回调 描述
onRecordAudioFrame 返回麦克风录制的音频数据
onPlaybackAudioFrame 返回订阅的所有远端用户混音后的音频数据
onMixedAudioFrame 返回本地麦克风录制和订阅的所有远端用户混音后的音频数据

音视频回退

回调 描述
onSimulcastSubscribeFallback 因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。
onPerformanceAlarms 本地未开启发布性能回退,检测到设备性能不足时,收到此回调。

本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。

加密

回调 描述
onEncryptData 自定义加密
onDecryptData 自定义解密

多房间

回调 描述
onLeaveRoom 离开房间成功回调。

用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。
onJoinRoomResult 首次加入房间/重连加入房间的回调。此回调表示调用 joinRoom 的结果,根据错误码判断成功/失败以及区别是否为重连。
onRoomWarning 发生警告回调。
onRoomError 发生错误回调。
onRtcStats 房间通话统计信息回调。

用户进房开始通话后,每 2s 收到一次本回调。
onUserJoined 可见用户加入房间,或房内隐身用户切换为可见的回调。

1.远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。

2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。

3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。

4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。
onUserLeave 远端见用户离开房间,或从可见切换为隐身的回调。

发生以下情形时,房间内其他用户会收到此事件:

1. 远端可见用户调用 leaveRoom 方法离开房间时。

2. 远端可见用户调用 setUserVisibility 方法切换至隐身时。

3. 远端主播角色用户断网,且一直未恢复。
onLocalStreamStats 反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调。

本地用户发布音视频流成功后,每隔 2s 收到此回调。
onRemoteStreamStats 反映通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况的回调。每隔 2s 收到此回调。
onFirstLocalAudioFrame 本地采集到第一帧音频帧时,收到该回调。
onFirstRemoteAudioFrame 接收到来自远端某音频流的第一帧时,收到该回调。
onUserPublishStream 房间内新增远端摄像头/麦克风采集音视频流的回调。
onUserUnPublishStream 房间内远端摄像头/麦克风采集的媒体流移除的回调。
onUserPublishScreen 房间内新增远端屏幕共享音视频流的回调。
onUserUnPublishScreen 房间内远端屏幕共享音视频流移除的回调。
onRoomMessageReceived 接收到房间内广播消息的回调。

房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。
onRoomBinaryMessageReceived 接收到房间内广播二进制消息的回调。

房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。
onUserMessageReceived 收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。
onUserBinaryMessageReceived 收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。
onUserMessageSendResult 向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。
onRoomMessageSendResult 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
onFirstLocalVideoFrameCaptured 第一帧本地采集的视频/屏幕共享画面采集完成时,收到此回调。
onLocalVideoSizeChanged 本地视频大小或旋转信息发生改变时,收到此回调。
onRemoteVideoSizeChanged 远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。
onFirstRemoteVideoFrameRendered SDK 内部渲染成功远端视频流首帧后,收到此回调。
onUserStartVideoCapture 房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此回调。
onUserStopVideoCapture 房间内的可见用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此回调。
onUserStartAudioCapture 房间内的可见用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
onUserStopAudioCapture 房间内的可见用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
onLocalAudioStateChanged 本地音频流的状态发生改变时,该回调通知当前的本地音频流状态。
onRemoteAudioStateChanged 用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
onLocalVideoStateChanged 本地视频流的状态发生改变时,收到该事件。
onRemoteVideoStateChanged 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
onSimulcastSubscribeFallback 因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。
onAudioFrameSendStateChanged 本地音频首帧发送状态发生改变时,收到此回调
onVideoFrameSendStateChanged 本地视频首帧发送状态发生改变时,收到此回调
onScreenVideoFrameSendStateChanged 屏幕共享流的视频首帧发送状态发生改变时,收到此回调
onAudioFramePlayStateChanged 音频首帧播放状态发生改变时,收到此回调
onVideoFramePlayStateChanged 视频首帧播放状态发生改变时,收到此回调
onScreenVideoFramePlayStateChanged 屏幕共享流视频首帧播放状态发生改变时,收到此回调
onScreenVideoFramePlayStateChanged 屏幕共享流视频首帧播放状态发生改变时,收到此回调
onForwardStreamStateChanged 跨房间媒体流转发状态和错误回调
onForwardStreamEvent 跨房间媒体流转发事件回调
onVideoStreamBanned 通过调用服务端 MuteUser/UnmuteUser 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。

本地录制

回调 描述
onRecordingStateUpdate 获取本地录制状态回调。

该回调由 startFileRecording 或 stopFileRecording 触发。
onRecordingProgressUpdate 本地录制进度回调。

该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。

通话前网络探测

回调 描述
onNetworkDetectionResult 通话前网络探测结果
成功调用 startNetworkDetection 接口开始探测后,会每 2s 收到一次此回调。
onNetworkDetectionStopped 通话前网络探测结束
以下情况将停止探测并收到本一次本回调:

1. 当调用 stopNetworkDetection 接口停止探测后,会收到一次该回调;
2. 当收到远端/本端音频首帧后,停止探测;
3. 当探测超过3分钟后,停止探测;
4. 当探测链路断开一定时间之后,停止探测。

音频事件回调

回调 描述
onLocalAudioStateChanged 本地音频流的状态发生改变时,该回调通知当前的本地音频流状态。
onRemoteAudioStateChanged 用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
onAudioPlaybackDeviceChanged 音频播放设备变化时,收到该回调。
onFirstLocalAudioFrame 本地采集到第一帧音频帧时,收到该回调。
onFirstRemoteAudioFrame 接收到来自远端某音频流的第一帧时,收到该回调。
onAudioStreamBanned 通过调用服务端 MuteUser/UnmuteUser 方法禁用/解禁指定房间内指定用户视音频流的发送时,触发此回调。
onAudioStreamBanned 通过调用服务端 MuteUser/UnmuteUser 方法禁用/解禁指定房间内指定用户视音频流的发送时,触发此回调。

数据统计

回调 描述
onRoomStats 房间通话统计信息回调。

用户进房开始通话后,每 2s 收到一次本回调。
onSysStats 每2秒发生回调,通知当前cpu,内存使用的信息。
onLocalStreamStats 发布流成功后,每隔 2s 收到此回调,了解发布的流在此周期内的网络质量信息。
onRemoteStreamStats 每隔 2s 收到此回调,了解订阅的远端用户发布的流在此周期内的网络质量信息。

警告码

回调 描述
onWarning 发生警告回调。
onError 发生错误回调。

代理回调

回调 描述
onHttpProxyState HTTP 代理连接状态改变时,收到该回调。