方法

引擎管理

方法 描述
createEngine 创建引擎对象

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

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

可通过 businessId 区分不同的业务场景(角色/策略等)。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能。
setRuntimeParameters 设置运行时的参数

房间管理

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

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

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

本地用户调用此方法加入房间成功后,会收到 onJoinRoomResult 回调通知,远端用户会收到 onUserJoined 回调通知。
leaveRoom 离开房间。

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

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

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoomonLeaveChannel 回调通知。
updateToken 更新 Token。

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

用户调用 joinRoom 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 ErrorCode.ERROR_CODE_INVALID_TOKENErrorCode。此时需要重新获取 Token,并调用此方法更新 Token。
setUserRole 设置用户角色。默认角色为主播。

通过设置不同的用户角色,可以控制用户在房间内的行为:

+ 能否发布音视频流;

+ 用户自身是否在房间中隐身。
enableAutoSubscribe 开启/关闭自动订阅功能。

用户调用此方法设置房间中是否开启自动订阅功能。SDK 默认开启自动订阅功能。

如需关闭自动订阅功能,建议在调用 joinRoom 方法加入房间前设置完成。
subscribeStream 订阅指定的房间内远端音视频流。

关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。

此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 enableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。

订阅流失败时,SDK 会按失败原因回调 onError 通知用户,具体错误可参考错误码 ErrorCode 描述。
unSubscribe 停止订阅指定的房间内远端音视频流。

关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。

此方法仅在开启手动订阅功能时生效,用户需在加入房间前调用 enableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。

音频管理

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

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

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

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

进房后调用该方法,房间中的其他用户会收到 onUserStopAudioCapture 的回调。
setAudioScenario 设置音频场景类型
setAudioPlaybackDevice 设置音频播放设备为扬声器或者听筒,默认使用扬声器。

音频播放设备发生变化时,会收到 onAudioPlaybackDeviceChanged 事件回调。
isSpeakerphoneEnabled 查询扬声器启用状态
setAudioVolumeIndicationInterval 开启/关闭音量提示。默认关闭。

开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 onAudioVolumeIndication。
muteLocalAudio 控制本地音频流的发送状态:发送/不发送。

使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。
muteAllRemoteAudio 设置对来自远端的所有音频流的接收状态。默认为接收。
muteRemoteAudio 设置对来自指定远端用户的音频流的接收状态。默认为接收。
setRecordingVolume 调节音频采集音量。
setPlaybackVolume 调节本地播放的所有远端用户混音后的音量。
setRemoteAudioPlaybackVolume 调节来自指定远端用户的音频播放音量,默认为 100。

视频管理

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

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

进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
stopVideoCapture 关闭本地视频采集。默认为关闭状态。

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

进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
setLocalVideoCanvas 设置本地视频渲染时,使用的视图,并设置渲染模式。

你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。
如果需要解除绑定,你可以调用本方法绑定空视图。
setRemoteVideoCanvas 设置来自指定远端用户 user_id 的视频渲染时,使用的视图,并设置渲染模式。
setLocalVideoMirrorMode 设置采用前置摄像头采集时,是否开启镜像模式。

调用后,你会收到回调:OnMirrorStateChangedonMirrorStateChanged
switchCamera 切换移动端前置/后置摄像头
muteLocalVideo 停止/启动发送本地视频流,默认不发送。

无论你使用 SDK 的视频采集编码功能,还是使用自定义采集功能,你都应使用此接口启动发送本地视频流。

调用该方法后,房间中的其他用户会收到 onUserMuteVideo 的回调。
muteAllRemoteVideo 设置是否播放所有远端视频流
muteRemoteVideo 设置是否播放远端视频流
setVideoSourceType 切换视频输入源(自定义采集/内部采集)
setVideoEncoderConfig 启动推送多路视频流,设置推送多路流时的各路视频参数,
包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
setVideoEncoderConfig 设置推送多路流时的各路视频参数,以及视频旋转角度。
publishScreen 发布本地屏幕共享流。
unpublishScreen 停止发布本地屏幕共享流。
startScreenSharing 开启屏幕共享。
stopScreenSharing 关闭屏幕共享。
pushScreenFrame 发布共享屏幕视频帧

实时消息通信

方法 描述
sendUserMessage 给房间内指定的用户发送文本消息(P2P),返回这次发送消息的编号。
sendUserBinaryMessage 给房间内指定的用户发送二进制消息(P2P),返回这次发送消息的编号。

自定义视频采集渲染

方法 描述
setLocalVideoSink 设置对本地视频流进行自定义渲染。

该方法用于将本地视频源与外部渲染器绑定。
setRemoteVideoSink 设置对远端视频流进行自定义渲染。

该方法用于将远端视频源与外部渲染器绑定。
pushExternalVideoFrame 推送外部视频帧。
pushExternalVideoFrame 推送外部视频帧。

流消息

方法 描述
sendRoomMessage 给房间内的所有其他用户发送广播消息。
sendRoomBinaryMessage 给房间内的所有其他用户发送广播二进制消息。

音频数据回调

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

视频数据回调

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

无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户
registerMetadataObserver 注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。

注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 onReadyToSendMetadata 回调。

注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收 onMetadataReceived 回调。

CDN 推流

方法 描述
startLiveTranscoding 开启合流转推,并设置合流的视频视图布局和音频属性。
stopLiveTranscoding 停止合流转推。
updateLiveTranscoding 更新合流转推参数。

启用合流转推功能后,你可以使用此方法更新合流转推功能配置参数。

自定义音频采集渲染

方法 描述
enableExternalAudioDevice 启用自定义音频采集渲染
disableExternalAudioDevice 禁用已开启的自定义音频采集渲染,将音频采集渲染由自定义模块切换至内部模块。
pushExternalAudioFrame 推送外部音频数据。
pullExternalAudioFrame 拉取外部音频数据。

音视频回退

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

你可以调用这个接口来设置网络情况不佳或性能不足时只发送小流,以保证通话质量。
setRemoteSubscribeFallbackOption 设置订阅的音视频流回退选项。
setRemoteUserPriority 设置用户优先级。

加密

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

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

视频特效

方法 描述
checkVideoEffectLicense 视频特效许可证检查
setVideoEffectAlgoModelPath 设置视频特效算法模型路径
enableVideoEffect 创建/销毁视频特效引擎
setVideoEffectNodes 设置视频特效素材包,支持同时设置多个素材包
updateVideoEffectNode 设置特效强度
setVideoEffectColorFilter 设置颜色滤镜
setVideoEffectColorFilterIntensity 设置已启用的颜色滤镜强度

云端渲染

方法 描述
startCloudRendering
updateCloudRendering
stopCloudRendering

语音识别服务

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

本地录制

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

混音

方法 描述
getAudioMixingManager 混音管理接口创建
startAudioMixing 开始播放音乐文件及混音
stopAudioMixing 停止播放音乐文件及混音
pauseAudioMixing 暂停播放音乐文件及混音
resumeAudioMixing 恢复播放音乐文件及混音
preloadAudioMixing 预加载指定音乐文件到内存中
unloadAudioMixing 卸载指定音乐文件
setAudioMixingVolume 调节音乐文件在本地和远端播放的音量大小
getAudioMixingDuration 获取音乐文件时长
getAudioMixingCurrentPosition 获取音乐文件播放进度
setAudioMixingPosition 设置音乐文件的播放位置
enableAudioMixingFrame 启动外部音频流混音
disableAudioMixingFrame 关闭外部音频流混音
pushAudioMixingFrame 向 SDK 推送外部音频帧数据

回调

房间管理

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

用户调用 LeaveRoomleaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。

离开房间后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用音视频设备导致初始化失败。
onUserJoined 远端主播角色用户加入房间回调。

1.远端主播角色用户调用 joinRoom 方法加入房间时,房间内其他用户将收到该事件。

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

3.远端静默观众角色用户调用 setUserRole 方法将角色切换至主播时,房间内其他用户将收到该事件。

4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。
onUserLeave 远端用户离开房间回调。

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

1.远端主播角色用户调用 LeaveRoomleaveRoom 方法离开房间时。

2.远端主播角色用户调用 setUserRole 方法将角色切换至静默观众。

3.远端主播角色用户断网,且一直未恢复。
onStreamAdd 房间内新流发布回调。

房间内的远端用户发布新的音视频流时,本地用户会收到此回调通知。
onStreamRemove 房间内远端流移除回调。

房间内的远端用户停止发布音视频流时,本地用户会收到此回调通知。
onAudioFrameSendStateChanged 音频首帧发送状态改变回调
onVideoFrameSendStateChanged 视频首帧发送状态改变回调
onScreenVideoFrameSendStateChanged 屏幕共享流视频首帧发送状态改变回调
onAudioFramePlayStateChanged 音频首帧播放状态改变回调
onVideoFramePlayStateChanged 视频首帧播放状态改变回调
onScreenVideoFramePlayStateChanged 屏幕共享流视频首帧播放状态改变回调

警告码

回调 描述
onWarning 发生警告回调。

错误码

回调 描述
onError 当 SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。

数据统计

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

用户进房开始通话后,每 2s 收到一次本回调。
onSysStats 每2秒发生回调,通知当前cpu,内存使用的信息。
onLocalStreamStats 反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调,每 2s 触发一次。
onRemoteStreamStats 通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况,每 2s 触发一次。

音频事件回调

回调 描述
onAudioVolumeIndication 提示本地采集的音量信息和在房间内订阅的远端用户的音量信息。

本回调默认不开启。你可以通过调用 setAudioVolumeIndicationInterval 开启。
onUserMuteAudio 房间内某用户调用 muteLocalAudio
改变本地音频发送状态时,房间内其他用户会收到此回调。
onLocalAudioStateChanged 本地音频流的状态发生改变时,该回调通知当前的本地音频流状态。
onRemoteAudioStateChanged 用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
onAudioPlaybackDeviceChanged 音频播放设备变化时,收到该回调。
onFirstLocalAudioFrame 本地采集到第一帧音频帧时,收到该回调。
onFirstRemoteAudioFrame 接收到来自远端某音频流的第一帧时,收到该回调。

引擎管理

回调 描述
onNetworkTypeChanged SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
onConnectionStateChanged 回调 SDK 与信令服务器连接状态相关事件。当 SDK 与信令服务器的网络连接状态改变时回调该事件。
onLogReport 上报日志时回调该事件。
onMediaDeviceStateChanged 媒体设备状态回调。提示音频采集、音频渲染、视频采集三种媒体设备的状态。
onHttpsProxyState HTTPS 代理连接状态改变时,收到该回调。
onSocks5ProxyState SOCKS5 代理状态改变时,收到该回调。

视频管理

回调 描述
onMuteAllRemoteVideo 房间内用户暂停/恢复接收所有视频流时,房间内其他用户收到此回调。参看 muteAllRemoteVideo。
onUserMuteVideo 房间内用户暂停/恢复发送视频流时,房间内其他用户将收到此回调。参看 muteLocalVideo。
onUserStartVideoCapture 房间内的用户调用 startVideoCapture 开启视频采集时,房间内其他用户会收到此回调。
onUserStopVideoCapture 房间内的用户调用 stopVideoCapture 开启视频采集时,房间内其他用户会收到此回调。
onLocalVideoStateChanged 本地视频流的状态发生改变时,收到该事件。
onRemoteVideoStateChanged 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
onFirstRemoteVideoFrameRendered 第一帧远端视频流在视图上渲染成功后,收到此回调。
onFirstLocalVideoFrameCaptured 第一帧本地采集的视频/屏幕共享画面采集完成时,收到此回调。
onLocalVideoSizeChanged 本地视频大小或旋转信息发生改变时,收到此回调。
onRemoteVideoSizeChanged 远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。
onMirrorStateChanged 当本地视频镜像状态改变时回调该事件。默认回调该事件。

音频管理

回调 描述
onUserStartAudioCapture 房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
onUserStopAudioCapture 房间内的用户调用 stopAudioCapture 开启音频采集时,房间内其他用户会收到此回调。

音视频回退

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

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

混音

回调 描述
onAudioMixingFinished 本地音乐文件播放已结束回调。
当调用 startAudioMixing 启动的混音文件播放结束后,会触发该回调。
onAudioEffectFinished 本地音效文件播放已结束回调。
onAudioMixingStateChanged 音频混音文件播放状态改变时回调

流消息

回调 描述
onRoomMessageReceived 接收到房间内广播消息的回调。
onRoomBinaryMessageReceived 接收到房间内广播二进制消息的回调。
onRoomMessageSendResult 当调用 sendRoomMessage 函数发送消息后,回调此条消息的发送结果(反馈)。

CDN 推流

回调 描述
onLiveTranscodingResult 合流转推错误回调。

调用 startLiveTranscoding 接口或直接在服务端启动合流转推功能后,你会通过此回调收到启动结果和推流过程中的错误。
isSupportClientPushStream 是否具有推流能力。

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

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

实时消息通信

回调 描述
onUserMessageReceived 收到来自房间中其他用户发来的文本消息时(P2P),会收到此回调。
onUserBinaryMessageReceived 收到来自房间中其他用户发来的二进制消息时(P2P),会收到此回调。
onUserMessageSendResult 向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。

代理回调

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

本地录制

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

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

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

加密

回调 描述
onEncryptData
onDecryptData

频道管理

回调 描述
load SDK在需要加载动态库时通过该方法回调

视频数据回调

回调 描述
onLocalEncodedVideoFrame 调用 registerLocalEncodedVideoFrameObserver 后,SDK 收到本地视频帧信息时,回调该事件
onMetadataReceived 当SDK收到的视频帧包含 medatada时,会回调该接口
onReadyToSendMetadata 当SDK准备发送一个视频帧时,会回调该接口,向你询问是否需要在该视频帧中添加 metadata

音频数据回调

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