方法

引擎管理

方法 描述
create 创建引擎对象

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
create 创建引擎对象

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
create 创建引擎对象

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
create 创建引擎对象

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
createEngine 创建引擎对象

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
destroyEngine 销毁引擎
销毁由 createEgninecreate 所创建引擎实例,并释放所有相关资源
destroy 销毁引擎
销毁由 create 所创建引擎实例,并释放所有相关资源
getSdkVersion 获取 SDK 当前的版本号。
getErrorDescription 获取SDK内各种错误码、警告码的描述文字
setRtcEngineEventHandler 设置引擎事件回调的接收类,必须继承自 IRtcEngineEventHandler 。
setOnDestroyCompletedCallback 设置引擎销毁后通知 App 的回调函数。
setBusinessId 设置业务标识参数。

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

音视频回退

方法 描述
enablePerformanceCollect 由外部控制是否开启性能采集,默认关闭。
setPublishFallbackOption 设置发布的音视频流回退选项。
setRemoteSubscribeFallbackOption 设置订阅的音视频流回退选项。
setRemoteUserPriority 设置用户优先级。

房间管理

方法 描述
joinChannel 加入房间。用户调用此方法加入房间,在一个房间内的用户间可以相互通话。

用户调用 create 方法创建 RTC 引擎后,需调用此方法加入房间实现同其他用户进行音视频通话。如果用户调用此方法加入房间,则后续重复调用此方法均会失败,用户必须调用 leaveChannel 退出当前房间后,才能加入下一个房间。

用户调用此方法加入房间成功后,会收到 onJoinChannelSuccess 回调通知。
leaveChannel 离开房间。

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

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

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

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

用户调用 joinChannel 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 BRERR_INVALID_TOKEN 。此时需要重新获取 Token ,并调用此方法更新 Token。
setChannelProfile 设置房间模式。

通过设置房间模式,用户可以选择应用 SDK 针对不同房间模式场景的优化策略。

默认的房间模式为通信模式 CHANNEL_PROFILE_COMMUNICATION 。

房间模式必须在调用 joinChannel 加入房间前设置,加入房间后设置不生效。设置用户角色(通过方法 setClientRole )建议在设置完房间模式后。
setClientRole 设置用户角色。

用户可通过设置用户角色,控制:1.是否发布音视频流;2.用户自身是否在房间中隐身。详见用户角色 CLIENT_ROLE_TYPE 。

默认用户角色为主播角色 CLIENT_ROLE_BROADCASTER 。

房间模式(通过调用接口 setChannelProfile 可设置房间模式)为直播模式、游戏模式、云游戏模式时,设置用户角色生效。房间模式为通信模式时不区分用户角色。
enableAutoSubscribe 开启/关闭自动订阅功能。

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

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

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

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

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

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

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

视频管理

方法 描述
enableLocalVideo 该方法开启或关闭本地视频采集。默认为开启状态。

调用该方法后,房间中的其他用户会收到 onUserEnableLocalVideo 的回调。
startPreview 开启视频预览,视频预览默认为关闭状态。
stopPreview 关闭视频预览,视频预览默认为关闭状态。
setupLocalVideo 设置本地视频显示属性
setupLocalVideoRender 设置本地视频外部渲染
setupLocalVideoRender 设置本地视频外部渲染
setupLocalScreenRender 设置本地屏幕视频的外部渲染
setupRemoteVideo 设置远端视频视图
setLocalVideoMirrorMode 设置本地视频镜像。
该方法设置本地视频镜像,支持动态设置。
isLocalVideoMirrorOn 获取本地视频镜像。
switchCamera 切换前置/后置摄像头
replaceBackground 视频图像分割,替换背景
muteLocalVideoStream 开启/关闭本地视频发送,调用该方法后,房间中的其他用户会收到 onUserMuteVideo 的回调。
muteAllRemoteVideoStreams 开启/关闭所有远程视频流
setDefaultMuteAllRemoteVideoStreams 停止/恢复接受所有新加入房间用户的远端视频流
muteRemoteVideoStream 接收/停止接收指定视频流
setExternalVideoSource 配置外部视频源。 不支持频道内动态切换视频源。如果想切换成视频源,须先退出频道,再重新加入频道。
setExternalVideoSource 配置外部视频源。 不支持频道内动态切换视频源。如果想切换成视频源,须先退出频道,再重新加入频道。
setVideoProfiles 设置发布的视频流属性
setVideoProfiles 设置发布的视频流属性和视频旋转角度
setupRemoteScreen 设置共享屏幕远端视频视图。
setupLocalScreen 设置共享屏幕渲染本地视图
publishScreen 发布本地屏幕共享流。
unpublishScreen 停止发布本地屏幕共享流。
pushScreenFrame 发布共享屏幕视频帧
checkVideoEffectLicense 视频特效许可证检查
setVideoEffectAlgoModelPath 设置视频特效算法模型路径
enableVideoEffect 开启关闭视频特效
setVideoEffectPath 设置视频Effect资源路径,可以一次设置多种资源
addVideoEffectPath 增加特效包,支持同时增加多个特效包
removeVideoEffectPath 移除特效包,支持同时移除多个特效包
updateVideoEffect 设置特效强度
setVideoEffectColorFilter 设置颜色滤镜
setVideoEffectColorFilterIntensity 设置颜色滤镜强度

音频管理

方法 描述
enableLocalAudio 开启关闭本地音频。

调用该方法后,房间中的其他用户会收到 onUserEnableLocalAudio 的回调。
setEnableSpeakerphone 设置音频播放设备为扬声器或者听筒,默认使用扬声器。
音频播放设备发生变化时,会收到 onAudioRouteChanged 回调。
isSpeakerphoneEnabled 查询扬声器启用状态
enableAudioVolumeIndication 启用说话者音量提示。
muteLocalAudioStream 静音本地音频流。
调用该方法后,房间中的其他用户会收到 onUserMuteAudio 的回调。
muteAllRemoteAudioStreams 静音/取消静音所有音频流
setDefaultMuteAllRemoteAudioStreams 设置是否默认静音所有远端音频流
muteRemoteAudioStream 静音/取消静音指定用户的音频流
adjustRecordingSignalVolume 调节录音音量。
adjustPlaybackSignalVolume 调节本地播放的所有远端用户音量
AdjustRemoteAudioVolume 调节远端用户音量,默认为100
SetAudioPerfProfile 设置音频处理复杂度。对于希望性能占用较低,可设置较低的音频处理复杂度,如果更在意通话质量,可选择设置更高的音频处理复杂度。
加入房间时,会携带本接口传入的机型等级,然后从服务端拉起相应音频配置。如果传入的是 auto,服务端会查询数据库,获得机型等级,再下发配置。
不同复杂度会开关AEC、ANS、AGC算法,调整播放sample rate等, 进行性能和质量的控制。

自定义视频采集渲染

方法 描述
setupRemoteVideoRender 设置远端视频的外部渲染
setupRemoteVideoRender 设置远端视频的外部渲染
setupRemoteVideoRender 设置远端视频的外部渲染
setupRemoteVideoRender 设置远端视频的外部渲染
setupRemoteScreenRender 设置远端屏幕流视频的外部渲染
setupRemoteScreenRender 设置远端屏幕流视频的外部渲染
pushExternalVideoFrame 推送外部视频帧。
pushExternalVideoFrame 推送外部视频帧。

混音

方法 描述
startAudioMixing 开始播放音乐文件及混音。
stopAudioMixing 停止播放音乐文件及混音。
pauseAudioMixing 暂停播放音乐文件
resumeAudioMixing 恢复播放音乐文件
adjustAudioMixingVolume 调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
getAudioMixingDuration 获取音乐文件时长
getAudioMixingCurrentPosition 获取音乐文件播放进度
setAudioMixingPosition 设置音频文件的播放位置
adjustAudioMixingPlayoutVolume 调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
adjustAudioMixingPublishVolume 调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
getEffectVolume 获取指定音效文件的文件音量
setVolumeOfEffect 调节指定音效文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
setEffectsVolume 调节所有音效文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
playEffect 开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。
preloadEffect 预加载指定音效文件
unloadEffect 卸载指定音效文件
stopEffect 停止播放指定音效文件
pauseEffect 暂停播放指定音效文件
resumeEffect 恢复播放指定音效文件
stopAllEffects 停止所有音效文件的播放
unloadAllEffects 卸载所有音效文件
pauseAllEffects 暂停所有音效文件的播放
resumeAllEffects 恢复所有音效文件的播放
setAudioPlayoutMixStream 启动/停止外部音频流混音, 并设置混音数据格式
getAudioMixingStreamCachedFrameNum 获取SDK当前缓冲数据
pushAudioMixingStreamData 向SDK推送混音的音频数据

流消息

方法 描述
sendCustomMessage 给房间内的所有其他用户发送广播消息。
sendMessage 给房间内指定的用户发送消息, 返回这次发送消息的编号。

调用该函数后会收到一次 onMessageSendResult
回调,告知发送结果。

音频数据回调

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

CDN 推流

方法 描述
enableLiveTranscoding 开启直播推流转码功能。

此方法用于开启直播推流转码功能,并设置旁路推流的视频视图布局及音频属性等。

直播推流转码功能开启时,会根据设置的视频视图布局和音频属性进行合流转码转成 rtmp 流并推送到设置的 CDN 。

直播推流转码功能启动成功或失败时、推流过程中发生错误时,SDK 通过 onStreamPublished 回调事件通知用户对应的状态事件。
disableLiveTranscoding 关闭直播推流转码功能。
setVideoCompositingLayout 设置视频流合流布局。

此方法用于在直播推流转码功能开启时,更新旁路推流的视频合流布局属性。调用此方法前,用户需通过调用 enableLiveTranscoding 方法开启直播推流转码功能。如果未开启直播推流转码功能,则调用此方法不生效。

自定义音频采集渲染

方法 描述
setExternalAudioDevice 设置是否启用外部音频采集渲染
setAudioDeviceEventHandler 启动音频外部源采集渲染时,添加音频外部设备事件监控
pushExternalAudioFrame 推送外部音频数据。使用 setExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法推送外部音频数据。
pullExternalAudioFrame 拉取远端音频数据。使用 setExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法拉取远端音频数据。

视频数据回调

方法 描述
registerMetadataObserver 注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。

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

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

加密

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

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

云端渲染

方法 描述
startCloudRendering
updateCloudRendering
stopCloudRendering

回调

房间管理

回调 描述
onJoinChannelSuccess 加入房间成功回调。此回调事件表示本地用户成功加入了指定的房间。

用户调用 joinChannel 方法加入房间,首次加入房间成功后 SDK 通过此回调事件通知用户加入房间成功。此回调事件在用户调用 joinChannel 方法加入房间到用户调用 leaveChannel 方法离开房间期间至多回调一次。
onRejoinChannelSuccess 重新加入房间成功回调。此回调事件表示本地用户成功重连入房间。

本地用户加入房间成功后,在本端网络状况不佳的情况下,SDK 可能会与服务器失去连接。此时 SDK 将会自动重连,并在重连成功通过此回调事件通知用户重连成功。
onLeaveChannel 离开房间成功回调。

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

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

此回调用于提示房间中有新用户加入。如果本地用户已经在房间中,有新的远端用户加入时,SDK 通过此回调方法通知房间中有新用户加入;如果用户加入房间前,房间中已有其他用户,加入房间后用户也会收到这些已在房间中的远端用户的加入房间回调。

回调的具体触发时机如下:

1.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,调用 joinChannel 方法加入房间。

2.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,在断网后重连入房间。

3.远端已在房间中的房间模式为直播、游戏或云游戏模式的静默观众角色的用户,调用 setClientRole 方法将用户角色切换至主播或观众。

4.本地用户加入房间时,会收到已在房间中的远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户的加入房间回调。
onUserOffline 远端用户离开房间回调。

此回调用于提示房间中有远端用户离开。用户离开房间的原因有两个,即用户主动调用 leaveChannel 方法离开房间和超时掉线。

回调的具体触发时机如下:

1.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,调用 leaveChannel 方法离开房间。用户离开的原因为用户主动离开。

2.远端已在房间中的房间模式为直播、游戏或云游戏模式的主播、观众角色的用户调用 setClientRole 方法将用户角色切换至静默观众。用户离开的原因为用户主动离开。

3.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,断网且一直未恢复。用户离开的原因为用户掉线。
onStreamAdd 房间内新流发布回调。

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

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

警告码

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

错误码

回调 描述
onError 发生错误回调。

频道管理

回调 描述
onResponse API 响应回调。
onActiveSpeaker 监测到活跃用户回调。
onRemoteVideoStateChanged 视频状态转换回调,计算卡顿使用
onInitialize 初始化渲染器。
onStart 启动渲染器。
onStop 停止渲染器。
onDispose 释放渲染器。
getEGLContextHandle 获取 EGLContextHandle。
getBufferType 获取Buffer类型。
getPixelFormat 获取像素格式。

音频事件回调

回调 描述
onAudioQuality 远端用户音频质量回调
onAudioVolumeIndication 提示房间内谁正在说话以及说话者音量的回调
onUserMuteAudio 远端用户将其本地音频流静音时,房间内其他人会收到这个回调。
该回调由远端用户调用 muteLocalAudioStream 方法触发。
onUserEnableLocalAudio 远端用户已开启/关闭音频设备采集时,房间内其他用户会收到这个回调。
该回调由远端用户调用 enableLocalAudio 方法触发
onLocalAudioStateChanged 本地音频的状态发生改变时,该回调通知当前的本地音频状态。
onRemoteAudioStateChanged 远端用户音频状态发生改变时,该回调报告当前的远端音频流状态。
onAudioRouteChanged 音频路由变化时回调该事件
onFirstLocalAudioFrame 当收到本地第一帧音频的时候上报该事件
onFirstRemoteAudioFrame 当收到远端流的第一帧音频的时候上报该事件

数据统计

回调 描述
onRtcStats 房间通话数据回调。

用户加入当前房间成功后,SDK 会周期性(2s)的通过此回调事件通知用户当前房间内的汇总统计信息。
onRemoteVideoStats 远端视频流的统计信息回调。

本地用户订阅远端视频流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的视频流在此次统计周期内的状况。用户订阅多路远端视频流时,每一路流均会回调此事件。
onLocalVideoStats 本地视频流的统计信息回调。

本地用户发布视频流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的视频流在此次统计周期内的状况。
onRemoteAudioStats 远端音频流的统计信息回调。

本地用户订阅远端音频流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的音频流在此次统计周期内的状况。用户订阅多路远端音频流时,每一路流均会回调此事件。
onLocalAudioStats 本地音频流的统计信息回调。

本地用户发布音频流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的音频流在此次统计周期内的状况。

引擎管理

回调 描述
onNetworkQuality 通话中用户的媒体流网络上下行质量报告回调。加入房间成功后,每隔 2 秒会触发此回调,通知房间内用户与媒体服务器之间数据交互的网络质量。
onNetworkTypeChanged SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
onConnectionLost SDK 与信令服务器连接断开回调。当 SDK 与信令服务器的网络连接断开超过 10 秒时回调该事件。
onConnectionInterrupted SDK 与信令服务器连接中断回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
onConnectionStateChanged 回调 SDK 与信令服务器连接状态相关事件。当 SDK 与信令服务器的网络连接状态改变时回调该事件。
onLogReport 上报日志时回调该事件。

视频管理

回调 描述
onMuteAllRemoteVideo 当某个用户开启/关闭远端所有用户视频时回调该事件。
onUserMuteVideo 远端用户暂停/恢复发送视频流时回调该事件,即远端用户调用 muteLocalVideoStream 时,本地用户将会收到该回调
onUserEnableLocalVideo 远端用户开启/关闭本地视频采集时回调该事件,即远端用户调用 enableLocalVideo 时,本地用户将会收到该回调
onLocalVideoStateChanged 本地视频的状态发生改变时,该回调返回当前的本地视频状态。
onRemoteVideoStateChanged 远端用户视频状态发生改变时,该回调报告当前的远端视频流状态。
onFirstRemoteVideoFrame 收到远端流后解码第一帧时回调该事件。
onFirstLocalScreenFrame 本地屏幕视频首帧回调。
onFirstRemoteScreenFrame 远端屏幕共享数据流视频首帧回调。
onFirstLocalVideoFrame 收到第一帧本地视频画面时回调该事件。
onFirstRemoteVideoDecoded 当远端视频第一帧视频被解码时回调该事件。
onVideoSizeChanged 本地或远端视频大小或旋转信息发生改变回调。
onMirrorStateChanged 当本地视频镜像状态改变时回调该事件。默认回调该事件。

音视频回退

回调 描述
onRemoteStreamSwitch 收到远端流回退或恢复时回调该事件。

混音

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

流消息

回调 描述
onCustomMessage 广播消息回调。接收到房间内的广播消息时触发。
onMessageReceived 点对点消息回调。接收到同一房间内 uid 所属用户发来消息时触发。
onMessageSendResult 点对点消息发送结果回调。当调用 sendMessage 函数发送消息后,回调此条消息的发送结果(反馈)。

CDN 推流

回调 描述
onStreamPublished 直播推流转码状态回调。

用户调用 enableLiveTranscoding 方法启动直播推流转码功能后,直播推流转码功能启动成功或失败时、推流过程中发生错误时,SDK 通过此回调通知用户对应的状态事件。

回调事件为错误状态事件时,App 需根据功能状态码的处理建议做对应的处理,如通知用户或重试等。

自定义音频采集渲染

回调 描述
onAudioDeviceRecordStart 通知上层应用开启音频采集设备
onAudioDeviceRecordStop 通知上层应用关闭音频采集设备
onAudioDevicePlayoutStart 通知上层应用开启音频播放设备
onAudioDevicePlayoutStop 通知上层应用关闭音频播放设备

音频数据回调

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

视频数据回调

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