| 方法 | 描述 |
|---|---|
| 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 方法关闭自动订阅功能以使用手动订阅模式。 |
| 方法 | 描述 |
|---|---|
| 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 | 注册音频数据回调观察者 |
| 方法 | 描述 |
|---|---|
| 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 函数发送消息后,回调此条消息的发送结果(反馈)。 |
| 回调 | 描述 |
|---|---|
| onStreamPublished | 直播推流转码状态回调。 用户调用 enableLiveTranscoding 方法启动直播推流转码功能后,直播推流转码功能启动成功或失败时、推流过程中发生错误时,SDK 通过此回调通知用户对应的状态事件。 回调事件为错误状态事件时,App 需根据功能状态码的处理建议做对应的处理,如通知用户或重试等。 |
| 回调 | 描述 |
|---|---|
| onAudioDeviceRecordStart | 通知上层应用开启音频采集设备 |
| onAudioDeviceRecordStop | 通知上层应用关闭音频采集设备 |
| onAudioDevicePlayoutStart | 通知上层应用开启音频播放设备 |
| onAudioDevicePlayoutStop | 通知上层应用关闭音频播放设备 |
| 回调 | 描述 |
|---|---|
| onRecordAudioFrame | 返回麦克风录制的音频数据 |
| onPlaybackAudioFrame | 返回远端所有用户混音后的音频数据 |
| onMixedAudioFrame | 返回本地麦克风录制和远端所有用户混音后的音频数据 |
| 回调 | 描述 |
|---|---|
| onMetadataReceived | 当SDK收到的视频帧包含 medatada时,会回调该接口 |
| onReadyToSendMetadata | 当SDK准备发送一个视频帧时,会回调该接口,向你询问是否需要在该视频帧中添加 metadata |