方法

引擎管理

方法 描述
CreateRtcEngine 创建 RTCEngine 实例。

创建 RTCEngine 实例后,你才可以使用 SDK 提供的其他能力。
DestroyRtcEngine 销毁由 CreateRtcEngine 创建的 RTCEngine 实例,并释放所有相关资源。
GetSDKVersion 获取当前 SDK 版本信息。
Feedback 本次通话质量打分评价
GetCount 获取当前系统内音视频设备数量
GetDevice 根据索引号,获取设备信息
Release 释放当前 IDeviceCollection 对象占用的资源。
SetBusinessId 设置业务标识参数。

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

房间管理

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

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

本地用户调用此方法加入房间成功后,会收到 OnJoinRoomResult 回调通知,远端用户会收到 OnUserJoined 回调通知。
EnableAutoPublish 设置引擎自动发布属性
SetUserRole 设置用户角色。默认角色为主播。

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

+ 能否发布音视频流;

+ 用户自身是否在房间中隐身。
LeaveRoom 离开房间。

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

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

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

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

用户调用 JoinRoom 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 OnJoinRoomResult 回调通知,错误码为 ErrorCode.kErrorCodeInvalidTokenErrorCode。此时需要重新获取 Token,并调用此方法更新 Token。
SubscribeStream 订阅指定的房间内远端音视频流。

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

此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe
方法关闭自动订阅功能以使用手动订阅模式。
用户在自动订阅功能开启时调用此方法,SDK 不会订阅音视频流,并通过
OnRoomWarning 回调通知用户订阅失败,回调警告码为
kWarningCodeSubscribeStreamForbiden 。
订阅流失败时,SDK
会按失败原因回调 OnRoomError 通知用户,具体错误可参考错误码 ErrorCode 描述。
Unsubscribe 停止订阅指定的房间内远端音视频流。

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

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

用户调用此方法设置房间中音视频流的订阅模式。默认为自动订阅。

如需开启手动订阅功能,建议在调用 JoinRoom 方法加入房间前完成设置。

音频管理

方法 描述
SetRecordingVolume 调节音频采集音量
SetPlaybackVolume 调节本地播放的所有远端用户混音后的音量
StartMixScreenAudioToMainStream 开启声卡采集,将声卡播放的音频流合到本地采集的音频流中。

如果你希望将声卡播放的声音传输到远端(比如屏幕共享等场景),你必须开启声卡采集。如此,声卡播放的声音会合到本地采集的音频流在中,一起发送到远端。
StopMixScreenAudioToMainStream 关闭声卡采集,声卡播放的音频流不再合到本地采集的音频流中。
SetScreenAudioVolumeBeforeMixing 调节本地声卡采集音量。

开启本地声卡采集后,你可以使用此接口调节采集音量。
关于如何开启本地声卡采集,参考 StartMixScreenAudioToMainStream。
StartAudioCapture 开启内部音频采集。默认为关闭状态。

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

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

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

进房后调用该方法后,房间中的其他用户会收到 OnUserStopAudioCapture 的回调。
MuteLocalAudio 控制本地音频流的发送状态:发送/不发送

使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio
SetAudioPerformanceProfile 通过设置音频处理策略等级,获得不同的音频处理质量。默认使用 auto 模式。

此设置会影响音频采集端在音频采集后,发送前对音频的处理策略,达成不同的处理效果;

也会影响音频接收端在音频流接收后,播放前对音频的处理策略,达成不同的处理效果。

你应使用此方法,实现音频体验和系统性能占用之间的平衡:

如果你希望系统性能占用较低,你应设置较低的策略等级;如果你更在意音频质量,你应选择设置更高的策略等级。

一般情况下,你可使用 auto 模式(默认)。此时,sdk 会根据应用所在机型等级,自动适配音频处理策略。
GetAudioDeviceManager 设备音频管理接口创建
SetAudioVolumeIndicationInterval 开启/关闭音量提示。默认关闭。

开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 OnAudioVolumeIndication
SetRemoteAudioPlaybackVolume 调节来自远端用户的音频播放音量
MuteAllRemoteAudio 设置对来自远端的所有音频流的接收状态。默认为接收。
MuteRemoteAudio 设置对来自远端指定用户的音频流的接收状态。默认为接收。

视频管理

方法 描述
SetHardWareEncodeContext 用于给编码器设置opengl context
BuildVideoFrame 创建 IVideoFrame
PushExternalVideoFrame 发送外部源视频数据
StartVideoCapture 开启内部视频采集。默认为关闭状态。

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

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

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

进房后调用该方法后,房间中的其他用户会收到 OnUserStopVideoCapture 的回调。
SetVideoEncoderConfig 启动推送多路视频流,设置推送多路流时的各路视频参数,
包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
SetLocalVideoCanvas 设置本地视频渲染时,使用的视图,并设置渲染模式。

你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。
如果需要解除绑定,你可以调用本方法绑定空视图。
MuteLocalVideo 停止/启动发送本地视频流,默认不发送。

无论你使用 SDK 的视频采集编码功能,还是使用自定义采集功能,你都应使用此接口启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 OnUserMuteVideo 的回调。
SwitchCamera 切换移动端前置/后置摄像头
PushScreenFrame 发送屏幕共享本地视频数据
SetExternalVideoSource 设置是否启用自定义视频采集
PushExternalVideoFrame 发送外部源视频数据
ReplaceBackground 开启背景并设置背景模式与分割模式
SetLocalVideoMirrorMode 设置采用前置摄像头采集时,是否开启镜像模式。

调用后,你会收到回调:OnMirrorStateChanged
GetLocalVideoMirrorMode 获得当前本地镜像状态
SetRemoteVideoCanvas 设置来自指定远端用户 user_id 的视频渲染时,使用的视图,并设置渲染模式。

你应在加入房间前,绑定视图。退出房间后,此设置失效。

如果需要解除某个用户的绑定视图,你可以把 view 设置为空。
RemoveAllRemoteVideo 去除所有远端视频。
RemoveAllRemoteScreen 去除屏幕共享所有远端视图。
SetDefaultMuteAllRemoteVideoStreams 设置是否默认接收视频流.
MuteAllRemoteVideo 设置是否播放所有远端视频流
MuteRemoteVideo 设置是否播放远端视频流

屏幕共享

方法 描述
StartScreenCaptureByWindowId 该方法共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 id 。
StartScreenCaptureByScreenRect 通过指定区域共享屏幕,共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。
StartScreenCaptureByDisplayId 通过屏幕 id 共享屏幕,共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕 id 。
UpdateScreenCaptureRegion 更新屏幕共享区域。
UpdateScreenCaptureParameters 更新屏幕共享的编码参数配置。
StopScreenCapture 停止屏幕或者窗口共享。
GetScreenCaptureSourceList 获取共享对象(应用窗口和桌面)列表, 使用完之后需要调用对应的release接口释放
GetThumbnail 获取共享对象缩略图
PublishScreen 发布本地屏幕共享流到房间。
UnpublishScreen 停止发布本地屏幕共享流到房间。

实时消息通信

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

错误码

方法 描述
GetErrorDescription 获取错误码的描述

方法 描述
~IVideoStream 析构函数
codec_type 获取视频编码类型
set_codec_type 设置视频编码类型
timestamp_us 获取视频采集时间戳
set_timestamp_us 设置视频帧采集时间戳
timestamp_pts 获取视频显示时间戳
set_timestamp_pts 设置视频显示时间戳
timestamp_dts 获取视频解码时间戳
set_timestamp_dts 设置视频解码时间戳
timebase_num 获取时间基分子
set_timestamp_num 设置时间基分子
timebase_den 获取时间基分母
set_timestamp_den 设置时间基分母
width 获取视频分辨率的宽度
set_width 设置视频分辨率的宽
height 获取视频高度
set_height 设置视频高度
picture_type 获取视频编码格式
set_picture_type 设置视频编码格式
rotation 获取视频帧旋转角度
set_rotation 设置视频帧旋转角度
set_stream_memory 设置视频帧内存管理方式
data 获取视频数据指针地址
data_size 获取视频数据大小
build_video_frame 根据视频帧参数创建视频帧并返回指针
frame_type 获取视频帧类型
pixel_format 获取视频帧格式
timestamp_us 获取视频帧时间戳,单位:微秒
width 获取视频帧宽度
height 获取视频帧高度
rotation 获取视频帧旋转角度
color_space 获取视频帧颜色空间
number_of_planes 视频帧颜色 plane 数量
get_plane_data 获取 plane 数据指针
get_plane_line_size 获取 plane 中数据行的长度
get_extra_data_info 获取扩展数据指针
get_supplementary_info 获取补充数据指针
get_hwaccel_buffer 获取本地缓冲区指针
shallow_copy 浅拷贝视频帧并返回指针
release 释放视频帧
to_i420 视频帧数据转为 YUV I420 格式

加密

方法 描述
OnEncryptData 自定义加密。

使用设定的自定义加密方式,对传输前的音视频帧数据进行加密。
OnDecryptData 自定义解密。

对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 OnEncryptData。
SetEncryptInfo 设置传输时使用内置加密的方式
SetCustomizeEncryptHandler 设置自定义加密

需要实现对应的加密/解密方法,详情参考 EncryptType 。

视频设备管理

方法 描述
EnumerateVideoCaptureDevices 获取当前系统内视频采集设备列表。
SetVideoCaptureDevice 设置当前视频采集设备
GetVideoCaptureDevice 获取当前 SDK 正在使用的视频采集设备信息
GetVideoDeviceManager 创建视频设备管理实例

音频设备管理

方法 描述
EnumerateAudioPlaybackDevices 获取当前系统内音频播放设备列表。如果后续设备有变更,你会收到 OnMediaDeviceStateChanged 回调通知,然后需要重新调用本接口以获得新的设备列表。
EnumerateAudioCaptureDevices 获取当前系统内音频采集设备列表。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表。
SetAudioPlaybackDevice 设置音频播放设备。
SetAudioCaptureDevice 设置音频采集设备。
SetAudioPlaybackDeviceVolume 设置当前音频播放设备音量
GetAudioPlaybackDeviceVolume 获取当前音频播放设备音量
SetAudioCaptureDeviceVolume 设置当前音频采集设备音量
GetAudioCaptureDeviceVolume 获取当前音频采集设备音量
SetAudioPlaybackDeviceMute 设置当前音频播放设备静音状态,默认为非静音。
GetAudioPlaybackDeviceMute 获取当前音频播放设备是否静音的信息。
SetAudioCaptureDeviceMute 设置当前音频采集设备静音状态,默认为非静音。
GetAudioCaptureDeviceMute 获取当前音频采集设备是否静音的信息。
GetAudioPlaybackDevice 获取当前音频播放设备 ID。
GetAudioCaptureDevice 获取当前音频采集设备 ID。
StartAudioPlaybackDeviceTest 启动音频播放设备测试。

该方法测试播放设备是否能正常工作。SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
StopAudioPlaybackDeviceTest 停止音频播放设备测试。
StartAudioCaptureDeviceTest 启动音频采集设备测试。

该方法测试音频采集设备是否能正常工作。启动测试后,会收到 OnAudioVolumeIndication 回调上报的音量信息。
StopAudioCaptureDeviceTest 停止音频采集设备测试。
StartAudioDeviceLoopbackTest 开始音频设备回路测试。

该方法测试音频采集设备和音频播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地声音
并通过音频播放设备播放出来,同时用户 App 会收到 OnAudioVolumeIndication
回调上报的音量信息。
StopAudioDeviceLoopbackTest 停止音频设备回路测试。
InitAudioPlaybackDeviceForTest 尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。
InitAudioCaptureDeviceForTest 尝试初始化音频采集设备,可检测设备不存在、权限被拒绝/禁用等异常问题。

自定义音频采集渲染

方法 描述
EnableExternalAudioDevice 启用自定义音频采集渲染
DisableExternalAudioDevice 禁用已开启的自定义音频采集渲染,将音频采集渲染由自定义模块切换至内部模块。
SetAudioDeviceObserver 启动音频外部源采集渲染时,添加音频外部设备事件监控
PushExternalAudioFrame 推送外部音频数据。使用 EnableExternalAudioDevice
启用自定义音频采集渲染后,可以使用本方法推送外部音频数据。
PullExternalAudioFrame 拉取远端音频数据。使用 EnableExternalAudioDevice
启用自定义音频采集渲染后,可以使用本方法拉取远端音频数据。

混音

方法 描述
StartAudioMixing 开始播放音乐文件及混音。
StopAudioMixing 停止播放音乐文件及混音
PauseAudioMixing 暂停播放音乐文件
ResumeAudioMixing 恢复播放音乐文件
AdjustAudioMixingVolume 调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
AdjustAudioMixingPlayoutVolume 调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
AdjustAudioMixingPublishVolume 调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
GetAudioMixingDuration 获取音乐文件时长
GetAudioMixingCurrentPosition 获取音乐文件播放进度
SetAudioMixingPosition 设置音频文件的播放位置
GetEffectVolume 获取指定音效文件的文件音量
SetVolumeOfEffect 调节指定音效文件的文件音量
PlayEffect 开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。
PreloadEffect 预加载指定音效文件。
UnloadEffect 卸载指定音效文件
StopEffect 停止播放指定音效文件
PauseEffect 暂停播放指定音效文件
ResumeEffect 恢复播放指定音效文件
SetEffectsVolume 调节所有音效文件的文件音量
StopAllEffects 停止所有音效文件的播放
PauseAllEffects 暂停所有音效文件的播放。
ResumeAllEffects 恢复所有音效文件的播放
UnloadAllEffects 卸载所有音效文件
SetAudioPlayoutMixStream 启动/停止外部音频流混音, 并设置混音数据格式
GetAudioMixingStreamCachedFrameNum 获取SDK当前缓冲数据
PushAudioMixingStreamData 向SDK推送混音的音频数据

自定义视频采集渲染

方法 描述
SetLocalVideoRender 设置本地视频渲染器
该方法设置本地视频外部渲染器。应用程序通过调用此接口绑定本地视频流的渲染器canvas。
在应用程序开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效,
如果需要解除绑定,可以指定空的VideoSink。
SetLocalScreenRender 设置屏幕共享本地渲染器
该方法设置屏幕共享本地外部渲染器。应用通过调用此接口绑定本地屏幕共享流的渲染器 IVideoSink 。
在应用开发中,通常在初始化后调用该方法进行本地屏幕共享设置,然后再加入房间。退出房间后,绑定仍然有效,
如果需要解除绑定,可以指定空的 VideoSinkIVideoSink。
SetRemoteVideoRender 设置远端视频外部渲染器
SetRemoteScreenRender 设置屏幕共享远端外部渲染器

音视频回退

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

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

你可以通过调用该接口来设置网络情况不佳或性能不足时只订阅小流或音频流,以保证通话质量。
SetRemoteUserPriority 设置用户优先级

视频特效

方法 描述
DisableBackground 关闭背景
CheckSupport 检查当前版本是否支持视频特效
CheckLicense 视频特效许可证检查
EnableEffect 开启关闭视频特效
SetAlgoModelPath 设置视频特效算法模型路径
SetEffectNodes 设置特效包,支持同时设置多个特效包
AddEffectNodes 增加特效包,支持同时增加多个特效包
RemoveEffectNodes 移除特效包,支持同时移除多个特效包
UpdateNode 设置特效强度
SetColorFilter 设置颜色滤镜
SetColorFilterIntensity 设置颜色滤镜强度

音频数据回调

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

视频数据回调

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

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

流消息

方法 描述
SendRoomMessage 给房间内的所有其他用户发送广播消息。
SendRoomBinaryMessage 给房间内的所有其他用户发送广播消息。

回调

频道管理

回调 描述
OnStart 启动渲染器。
OnStop 停止渲染器。
Release 释放渲染器。

视频管理

回调 描述
OnFrame 视频帧回调
OnMirrorStateChanged 当本地视频镜像状态改变时回调该事件。默认回调该事件。
OnLocalScreenFrame 本地屏幕共享流数据回调
OnLocalVideoFrame 本地视频流数据回调
OnRemoteScreenFrame 远端屏幕共享流数据回调
OnRemoteVideoFrame 远端视频数据回调
OnMuteAllRemoteVideo 房间内用户暂停/恢复接收所有视频流时,房间内其他用户收到此回调。参看 MuteAllRemoteVideo。
OnFirstLocalVideoFrameCaptured 第一帧本地采集的视频/屏幕共享画面在本地视图渲染完成时,收到此回调。
OnLocalVideoSizeChanged 本地视频大小或旋转配置发生改变时,收到此回调。
OnRemoteVideoSizeChanged 远端视频大小或旋转配置发生改变时,房间内订阅此视频流的用户会收到此回调。
OnFirstRemoteVideoFrameRendered 第一帧远端视频流在视图上渲染成功后,收到此回调。
OnUserMuteVideo 房间内用户暂停/恢复发送视频流时,房间内其他用户会收到此回调。参看 MuteLocalVideo。
OnUserEnableLocalVideo 远端用户开启/关闭本地视频采集时回调该事件,当远端用户调用 EnableLocalVideo 时,其他用户会触发此回调。
OnLocalVideoStateChanged 本地视频流的状态发生改变时,收到该事件。
OnRemoteVideoStateChanged 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。

警告码

回调 描述
OnWarning 当内部发生警告事件时触发该回调

错误码

回调 描述
OnError 当 SDK 内部发生不可逆转错误时触发该回调。

混音

回调 描述
OnAudioMixingFinished 本地音乐文件播放已结束回调。
当调用 StartAudioMixing 启动的混音文件播放结束后,会触发该回调。
OnAudioMixingStateChanged 音频混音文件播放状态改变时回调。此回调会被触发的时机汇总如下:

+ 当调用 StartAudioMixing 方法成功后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。

+ 当调用 ResumeAudioMixing 方法恢复播放成功后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。

+ 当调用 PauseAudioMixing 方法暂停播放后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。

+ 当调用 StopAudioMixing 方法暂停止播放后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。
OnAudioEffectFinished 本地音效文件播放已结束回调。
当调用 PlayEffect 方法开始播放指定音效文件, 音效文件播放结束后, 应用会收到该回调。

引擎管理

回调 描述
OnLogReport 端监控日志回调。当产生一个端监控事件时触发该回调。
OnConnectionStateChanged SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
OnNetworkTypeChanged SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
OnMediaDeviceStateChanged 媒体设备状态回调。提示音频采集、音频渲染、视频采集三种媒体设备的状态。
OnSysStats 周期性地发出回调,报告当前cpu与memory使用率

音视频回退

回调 描述
OnPerformanceAlarms 本地未开启发布性能回退,检测到设备性能不足时,收到此回调。

本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
OnSimulcastSubscribeFallback 因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。

代理回调

回调 描述
OnHttpProxyState HTTP 代理连接状态改变时,收到该回调。
OnHttpsProxyState HTTPS 代理连接状态改变时,收到该回调。
OnSocks5ProxyState Socks5 代理状态改变时,收到该回调。

视频数据回调

回调 描述
OnReadyToSendMetadata 当 SDK 准备发送一个视频帧时,会回调该事件,以确定是否需要在该视频帧中添加 metadata。
OnMetadataReceived 当 SDK 收到一个视频帧时,并且其中包含 medatada 时,会回调该事件。

自定义音频采集渲染

回调 描述
OnAudioDeviceRecordStart 通知上层应用开启音频采集设备
OnAudioDeviceRecordStop 通知上层应用关闭音频采集设备
OnAudioDevicePlayoutStart 通知上层应用开启音频播放设备
OnAudioDevicePlayoutStop 通知上层应用关闭音频播放设备

音频数据回调

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

房间管理

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

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

离开房间后,如果 App 需要使用系统音视频设备,则建议收到此回调后再初始化音视频设备,否则可能由于 SDK 占用音视频设备而导致初始化失败。
OnRoomWarning SDK 发生警告回调。

SDK 内部遇到可恢复错误时,在尝试自动恢复的同时,会通过此回调通知用户。此回调事件仅用作通知。
OnRoomError SDK 发生错误回调。

SDK 内部遇到不可恢复错误时,会通过此回调通知 App,需要 App 根据错误码进行操作或提示用户。
OnUserJoined 远端主播角色用户加入房间回调。

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

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

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

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

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

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

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

3.远端主播角色用户断网,且一直未恢复。
OnStreamRemove 房间内的远端用户停止发布音视频流时,本地用户会收到此回调。
OnStreamAdd 房间内的用户发布新的音视频流时,房间内的其他用户会收到此回调。包括移除后又重新发布的流。
OnAudioFrameSendStateChanged 音频首帧发送状态改变回调
OnVideoFrameSendStateChanged 视频首帧发送状态改变回调
OnScreenVideoFrameSendStateChanged 屏幕共享流视频首帧发送状态改变回调
OnAudioFramePlayStateChanged 音频首帧播放状态改变回调
OnVideoFramePlayStateChanged 视频首帧播放状态改变回调
OnScreenVideoFramePlayStateChanged 屏幕共享流视频首帧播放状态改变回调

音频事件回调

回调 描述
OnAudioVolumeIndication 提示房间内所有用户发送音量的回调。
OnMuteAllRemoteAudio 当房间内用户调用 MuteAllRemoteAudio,
改变接收所有远端音频流的状态时, 房间内其他用户收到这个回调。
OnUserMuteAudio 房间内某用户调用 MuteLocalAudio
改变本地音频发送状态时,房间内其他用户会收到此回调。
OnUserEnableLocalAudio 远端用户开启/关闭音频设备采集时,房间内其他人会收到这个回调。
该回调由远端用户调用 StartAudioCapture 方法触发。
OnUserStartAudioCapture 房间内的用户调用 StartAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
OnUserStopAudioCapture 房间内的用户调用 StopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
OnFirstLocalAudioFrame 本地采集到第一帧音频帧时,收到该回调
OnFirstRemoteAudioFrame 接收到来自远端某音频流的第一帧时,收到该回调。
OnLocalAudioStateChanged 本地音频的状态发生改变时,该回调通知当前的本地音频状态。
OnRemoteAudioStateChanged 用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。

数据统计

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

用户进房开始通话后,每 2s 收到一次本回调。
OnLocalStreamStats 反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调,每 2s 触发一次。
OnRemoteStreamStats 通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况,每 2s 触发一次。

流消息

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

实时消息通信

回调 描述
OnUserMessageReceived 收到来自房间中其他用户发来的文本消息时(P2P),会收到此回调。
OnUserBinaryMessageReceived 单个用户接收到同一房间内其他 uid 所属用户发来二进制消息的回调(P2P)。
OnUserMessageSendResult 向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。

视频事件回调

回调 描述
OnUserStartVideoCapture 房间内的用户调用 StartVideoCapture 开启视频采集时,房间内其他用户会收到此回调。
OnUserStopVideoCapture 房间内的用户调用 StopVideoCapture 关闭视频采集时,房间内其他用户会收到此回调。

合流转推

回调 描述
OnStreamMixingEvent 通知 Transcoding 关键事件
@author wanghaoxu
OnStreamMixingVideoFrame 合流视频回调,运行在视频回调线程
@author wanghaoxu
OnStreamMixingAudioFrame 合流音频回调,运行在音频回调线程
@author wanghaoxu
OnStreamMixingDataFrame 视频SEI帧回调,运行在视频回调线程
@author wanghaoxu