#include <IAgoraRtcEngine.h>
Public 成员函数 | |
virtual | ~IRtcEngineEventHandler () |
virtual void | onWarning (int warn, const char *msg) |
virtual void | onError (int err, const char *msg) |
virtual void | onJoinChannelSuccess (const char *channel, uid_t uid, int elapsed) |
virtual void | onRejoinChannelSuccess (const char *channel, uid_t uid, int elapsed) |
virtual void | onLeaveChannel (const RtcStats &stats) |
virtual void | onClientRoleChanged (CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) |
virtual void | onClientRoleChangeFailed (CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) |
virtual void | onUserJoined (uid_t uid, int elapsed) |
virtual void | onUserOffline (uid_t uid, USER_OFFLINE_REASON_TYPE reason) |
virtual void | onProxyConnected (const char *channel, uid_t uid, PROXY_TYPE proxyType, const char *localProxyIp, int elapsed) |
virtual void | onLastmileQuality (int quality) |
virtual void | onLastmileProbeResult (const LastmileProbeResult &result) |
virtual void | onConnectionInterrupted () |
virtual void | onConnectionLost () |
virtual void | onConnectionBanned () |
virtual void | onApiCallExecuted (int err, const char *api, const char *result) |
virtual void | onRequestToken () |
virtual void | onTokenPrivilegeWillExpire (const char *token) |
virtual void | onAudioQuality (uid_t uid, int quality, unsigned short delay, unsigned short lost) |
virtual void | onRtcStats (const RtcStats &stats) |
virtual void | onNetworkQuality (uid_t uid, int txQuality, int rxQuality) |
virtual void | onLocalVideoStats (const LocalVideoStats &stats) |
virtual void | onRemoteVideoStats (const RemoteVideoStats &stats) |
virtual void | onLocalAudioStats (const LocalAudioStats &stats) |
virtual void | onRemoteAudioStats (const RemoteAudioStats &stats) |
virtual void | onLocalAudioStateChanged (LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR error) |
virtual void | onRemoteAudioStateChanged (uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) |
virtual void | onAudioPublishStateChanged (const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
virtual void | onVideoPublishStateChanged (const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
virtual void | onAudioSubscribeStateChanged (const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
virtual void | onVideoSubscribeStateChanged (const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
virtual void | onAudioVolumeIndication (const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume) |
virtual void | onLocalVoicePitchInHz (int pitchInHz) |
virtual void | onAudioDeviceTestVolumeIndication (AudioDeviceTestVolumeType volumeType, int volume) |
virtual void | onActiveSpeaker (uid_t uid) |
virtual void | onVideoStopped () |
virtual void | onFirstLocalVideoFrame (int width, int height, int elapsed) |
virtual void | onFirstLocalVideoFramePublished (int elapsed) |
virtual void | onFirstRemoteVideoDecoded (uid_t uid, int width, int height, int elapsed) |
virtual void | onFirstRemoteVideoFrame (uid_t uid, int width, int height, int elapsed) |
virtual void | onUserMuteAudio (uid_t uid, bool muted) |
virtual void | onUserMuteVideo (uid_t uid, bool muted) |
virtual void | onUserEnableVideo (uid_t uid, bool enabled) |
virtual void | onAudioDeviceStateChanged (const char *deviceId, int deviceType, int deviceState) |
virtual void | onAudioDeviceVolumeChanged (MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) |
virtual void | onCameraReady () |
virtual void | onCameraFocusAreaChanged (int x, int y, int width, int height) |
virtual void | onFacePositionChanged (int imageWidth, int imageHeight, Rectangle *vecRectangle, int *vecDistance, int numFaces) |
virtual void | onCameraExposureAreaChanged (int x, int y, int width, int height) |
virtual void | onAudioMixingFinished () |
virtual void | onAudioMixingStateChanged (AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) |
virtual void | onRemoteAudioMixingBegin () |
virtual void | onRemoteAudioMixingEnd () |
virtual void | onRequestAudioFileInfo (const AudioFileInfo &info, AUDIO_FILE_INFO_ERROR error) |
virtual void | onAudioEffectFinished (int soundId) |
virtual void | onFirstRemoteAudioDecoded (uid_t uid, int elapsed) |
virtual void | onVideoDeviceStateChanged (const char *deviceId, int deviceType, int deviceState) |
virtual void | onLocalVideoStateChanged (LOCAL_VIDEO_STREAM_STATE localVideoState, LOCAL_VIDEO_STREAM_ERROR error) |
virtual void | onVideoSizeChanged (uid_t uid, int width, int height, int rotation) |
virtual void | onRemoteVideoStateChanged (uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) |
virtual void | onUserEnableLocalVideo (uid_t uid, bool enabled) |
virtual void | onStreamMessage (uid_t uid, int streamId, const char *data, size_t length) |
virtual void | onStreamMessageError (uid_t uid, int streamId, int code, int missed, int cached) |
virtual void | onMediaEngineLoadSuccess () |
virtual void | onMediaEngineStartCallSuccess () |
virtual void | onUserSuperResolutionEnabled (uid_t uid, bool enabled, SUPER_RESOLUTION_STATE_REASON reason) |
virtual void | onVirtualBackgroundSourceEnabled (bool enabled, VIRTUAL_BACKGROUND_SOURCE_STATE_REASON reason) |
virtual void | onSnapshotTaken (const char *channel, uid_t uid, const char *filePath, int width, int height, int errCode) |
virtual void | onChannelMediaRelayStateChanged (CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code) |
virtual void | onChannelMediaRelayEvent (CHANNEL_MEDIA_RELAY_EVENT code) |
virtual void | onFirstLocalAudioFrame (int elapsed) |
virtual void | onFirstLocalAudioFramePublished (int elapsed) |
virtual void | onFirstRemoteAudioFrame (uid_t uid, int elapsed) |
virtual void | onRtmpStreamingStateChanged (const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR_TYPE errCode) |
virtual void | onRtmpStreamingEvent (const char *url, RTMP_STREAMING_EVENT eventCode) |
virtual void | onStreamPublished (const char *url, int error) |
virtual void | onStreamUnpublished (const char *url) |
virtual void | onTranscodingUpdated () |
virtual void | onAudioRouteChanged (AUDIO_ROUTE_TYPE routing) |
virtual void | onLocalPublishFallbackToAudioOnly (bool isFallbackOrRecover) |
virtual void | onRemoteSubscribeFallbackToAudioOnly (uid_t uid, bool isFallbackOrRecover) |
virtual void | onRemoteAudioTransportStats (uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) |
virtual void | onRemoteVideoTransportStats (uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) |
virtual void | onMicrophoneEnabled (bool enabled) |
virtual void | onConnectionStateChanged (CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) |
virtual void | onWlAccMessage (WLACC_MESSAGE_REASON reason, WLACC_SUGGEST_ACTION action, const char *wlAccMsg) |
virtual void | onWlAccStats (WlAccStats currentStats, WlAccStats averageStats) |
virtual void | onNetworkTypeChanged (NETWORK_TYPE type) |
virtual void | onLocalUserRegistered (uid_t uid, const char *userAccount) |
virtual void | onUserInfoUpdated (uid_t uid, const UserInfo &info) |
virtual void | onScreenCaptureInfoUpdated (ScreenCaptureInfo &info) |
IRtcEngineEventHandler 接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。
接口类的所有方法都由缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如发送消息),否则可能影响 SDK 的运行。
|
inlinevirtual |
|
inlinevirtual |
发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。比如和服务器失去连接时,SDK 可能会上报 WARN_OPEN_CHANNEL_TIMEOUT 警告,同时自动尝试重连。
warn | 警告代码: WARN_CODE_TYPE 。 |
msg | 警告描述。 |
|
inlinevirtual |
发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 比如启动通话失败时,SDK 会上报 ERR_START_CALL 错误。App 可以提示用户启动通话失败,并调用 leaveChannel 退出频道。
err | 错误代码: ERROR_CODE_TYPE 。 |
msg | 错误描述。 |
|
inlinevirtual |
加入频道回调。
该回调方法表示该客户端成功加入了指定的频道。
channel ID 基于 joinChannel 中指定的 channel name 分配。如果调用 IRtcEngine::joinChannel 时并没有指定 user ID。服务器会自动分配一个。
channel | 频道名。 |
uid | 用户 ID。如果 joinChannel 中指定了 uid,则此处返回该 ID;否则使用声网服务器自动分配的 ID。 |
elapsed | 从 joinChannel 开始到发生此事件过去的时间(毫秒)。 |
|
inlinevirtual |
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
channel | 频道名。 |
uid | 用户 ID。 |
elapsed | 从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。 |
|
inlinevirtual |
离开频道回调。
App 调用 leaveChannel 方法时,SDK提示 App 离开频道成功。在该回调方法中,App 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。App 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。
stats | 通话的统计数据: RtcStats 。 |
|
inlinevirtual |
直播场景下用户角色切换成功回调。
直播场景下,本地用户加入频道后调用 setClientRole 成功改变用户角色时,例如主播切换为观众,或观众切换为主播,SDK 会触发该回调,报告切换前和切换后的角色。
oldRole | 切换前的角色: CLIENT_ROLE_TYPE 。 |
newRole | 切换后的角色: CLIENT_ROLE_TYPE 。 |
|
inlinevirtual |
直播场景下切换用户角色失败回调。
直播场景下,本地用户加入频道后调用 setClientRole 切换用户角色失败时,SDK 会触发该回调,报告切换失败的原因和当前的用户角色。
reason | 切换用户角色失败的原因。详见 CLIENT_ROLE_CHANGE_FAILED_REASON 。 |
currentRole | 当前的用户角色。详见 CLIENT_ROLE_TYPE 。 |
|
inlinevirtual |
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
uid | 新加入频道的远端用户/主播 ID。 |
elapsed | 从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。 |
|
inlinevirtual |
远端用户(通信场景)/主播(直播场景)离开当前频道回调。
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
uid | 离线用户或主播的用户 ID。 |
reason | 离线原因: USER_OFFLINE_REASON_TYPE 。 |
|
inlinevirtual |
代理连接状态回调。
通过该回调你可以监听 SDK 连接代理的状态。例如,当用户调用 setCloudProxy 或 setLocalAccessPoint 设置云代理或本地代理并成功加入频道后, SDK 会触发该回调报告用户 ID、连接的代理类型和从调用 joinChannel 到触发该回调经过的时间等。
channel | 频道名称。 |
uid | 用户 ID。 |
proxyType | 连接上的代理类型。详见 PROXY_TYPE 。 |
localProxyIp | 本地代理的 IP 地址。当 proxyType 的值不为 3 时,该参数的值为空。 |
elapsed | 从调用 joinChannel 到 SDK 触发该回调的经过的时间(毫秒)。 |
|
inlinevirtual |
通话前网络上下行 last mile 质量报告回调。
该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到声网边缘服务器的网络状态。
在调用 enableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。
quality | 网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。详见: QUALITY_TYPE 。 |
|
inlinevirtual |
通话前网络质量探测报告回调。
通话前网络上下行 Last mile 质量探测报告回调。在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
result | 上下行 Last mile 质量探测结果。 详见: LastmileProbeResult 。 |
|
inlinevirtual |
网络连接中断回调。自 v2.3.2 起废弃。被 onConnectionStateChanged(CONNECTION_STATE_RECONNECTING, CONNECTION_CHANGED_INTERRUPTED) 取代。
SDK 在和服务器建立连接后,失去了网络连接超过 4 秒,会触发该回调。在触发事件后,SDK 会主动重连服务器,所以该事件可以用于 UI 提示。
与 onConnectionLost 回调的区别是:
如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
|
inlinevirtual |
网络连接丢失回调。
SDK 在调用 joinChannel 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
与 onConnectionInterrupted 的区别是:
如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
|
inlinevirtual |
当你被服务端禁掉连接的权限时,会触发该回调。
|
inlinevirtual |
API 方法已执行回调。
err | 当该方法调用失败时 SDK 返回的错误码。如果方法调用失败,会返回错误码 ERROR_CODE_TYPE 。如果该方法调用成功,SDK 将返回 0。 |
api | SDK 执行的 API。 |
result | SDK 调用 API 的调用结果。 |
|
inlinevirtual |
Token 已过期回调。
在调用 joinChannel, 时如果指定了 Token,由于 Token 具有一定的时效, 在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。
该回调通知 App 需要生成新的 Token,并调用 renewToken 更新 Token。
|
inlinevirtual |
Token 服务即将过期回调。
在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
token | 即将服务失效的 Token。 |
|
inlinevirtual |
该方法自 v2.3.2 起废弃。请改用 onRemoteAudioStats 方法。
该回调描述远端用户在通话中的音频质量,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
uid | 用户 ID,指定是谁发的音频流。 |
quality | 语音质量,详见: QUALITY_TYPE 。 |
delay | 音频包从发送端到接收端的延迟(毫秒)。包括声音采样前处理、网络传输、网络抖动缓冲引起的延迟。 |
lost | 音频包从发送端到接收端的丢包率 (%)。 |
|
inlinevirtual |
|
inlinevirtual |
通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到声网边缘服务器的网络状态。
该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
txQuality
为 UNKNOWN
;用户不收流时,rxQuality
为 UNKNOWN
。uid | 用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。 |
txQuality | 该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题,但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE 。 |
rxQuality | 该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE 。 |
|
inlinevirtual |
|
inlinevirtual |
通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流统计信息, 针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播, 该回调每 2 秒会被触发多次。
stats | 远端视频统计数据。详见: RemoteVideoStats 。 |
|
inlinevirtual |
|
inlinevirtual |
通话中远端音频流的统计信息回调。用于取代 onAudioQuality 回调。
该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。
stats | 接收到的远端音频统计数据,详细定义见: RemoteAudioStats 。 |
|
inlinevirtual |
本地音频状态发生改变回调。
本地音频的状态发生改变时(包括本地麦克风采集状态和音频编码状态), SDK 会触发该回调报告当前的本地音频状态。在本地音频出现故障时, 该回调可以帮助你了解当前音频的状态以及出现故障的原因,方便你排查问题。
error
参数中查看返回的错误信息。state | 当前的本地音频状态。详见 LOCAL_AUDIO_STREAM_STATE 。 |
error | 本地音频出错原因。详见 LOCAL_AUDIO_STREAM_ERROR 。 |
|
inlinevirtual |
远端音频流状态发生改变回调。
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
uid | 发生音频状态改变的远端用户 ID。 |
state | 远端音频流状态。 详见 REMOTE_AUDIO_STATE 。 |
reason | 远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON 。 |
elapsed | 从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。 |
|
inlinevirtual |
音频发布状态改变回调。
channel | 频道名。 |
oldState | 之前的发布状态,详见 STREAM_PUBLISH_STATE |
newState | 当前的发布状态,详见 STREAM_PUBLISH_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
|
inlinevirtual |
视频发布状态改变回调。
channel | 频道名。 |
oldState | 之前的发布状态,详见 STREAM_PUBLISH_STATE |
newState | 当前的发布状态,详见 STREAM_PUBLISH_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
|
inlinevirtual |
音频订阅状态发生改变回调。
channel | 频道名。 |
uid | 远端用户的 ID。 |
oldState | 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
newState | 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
|
inlinevirtual |
视频订阅状态发生改变回调。
channel | 频道名。 |
uid | 远端用户的 ID。 |
oldState | 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
newState | 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
|
inlinevirtual |
用户音量提示回调。
该回调默认禁用,你可以通过 enableAudioVolumeIndication 开启。 开启后,只要频道内有发流用户,SDK 会在加入频道后按 enableAudioVolumeIndication
中设置的时间间隔触发 onAudioVolumeIndication
回调。每次会触发两个 onAudioVolumeIndication
回调,一个报告本地发流用户的音量相关信息,另一个报告 瞬时音量最高的远端用户(最多 3 位)的音量相关信息。
speakers | 用户音量信息,详见 AudioVolumeInfo 数组。如果 speakers 为空,则表示远端用户不发流或没有远端用户。 |
speakerNumber | 用户数量。
|
totalVolume | 混音后的总音量,取值范围为 [0,255]。
|
|
inlinevirtual |
报告本地用户的语音音调。
开启本地音频采集并调用 enableLocalVoicePitchCallback 后,SDK 会按 enableLocalVoicePitchCallback
中设置的时间间隔触发本回调,报告本地用户的语音音调。
pitchInHz | 本地用户的语音音调,单位为 Hz。 |
|
inlinevirtual |
音频设备测试回调。
成功调用 startRecordingDeviceTest、startPlaybackDeviceTest 或 startAudioDeviceLoopbackTest 方法开启音频设备测试后, SDK 会按设置的时间间隔触发 onAudioDeviceTestVolumeIndication
回调,报告被测试音频设备的音量信息。
volumeType | 音量类型。详见 AudioDeviceTestVolumeType。 |
volume | 音量大小,范围为 [0,255]。 |
|
inlinevirtual |
监测到远端最活跃用户回调。
成功调用 enableAudioVolumeIndication 后,SDK 会持续监测音量 最大的远端用户,并统计该用户被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。
当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid
。
onActiveSpeaker
回调。uid
。uid | 远端最活跃用户的 ID。 |
|
inlinevirtual |
提示视频功能已停止。 App 如需在停止视频后对 view 做其他处理(比如显示其他画面),可以在这个回调中进行。
从 v2.4.1 起废弃。请改用 onLocalVideoStateChanged 回调中的 LOCAL_VIDEO_STREAM_STATE_STOPPED(0)。
|
inlinevirtual |
已显示本地视频首帧回调。
本地视频首帧显示在本地视图上时,SDK 会触发此回调。
width | 本地渲染视频的宽 (px) 。 |
height | 本地渲染视频的高 (px)。 |
elapsed | 从调用 joinChannel 到发生此事件过去的时间(毫秒)。如果在 joinChannel 前调用了 startPreview,则是从 startPreview 到发生此事件过去的时间。 |
|
inlinevirtual |
已发布本地视频首帧回调。
SDK 会在以下时机触发该回调:
elapsed | 从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。 |
|
inlinevirtual |
已接收到远端视频并完成解码回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的 view。有两种情况:
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
elapsed | 从本地调用 joinChannel 开始到该回调触发的延迟(毫秒)。 |
|
inlinevirtual |
已显示首帧远端视频回调。
第一帧远端视频显示在视图上时,触发此调用。 App 可在此调用中获知出图时间(elapsed)。
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
elapsed | 从本地调用 joinChannel 到发生此事件过去的时间(毫秒)。 |
|
inlinevirtual |
远端用户静音回调。
提示有远端用户已将其音频流静音(或取消静音)。
该回调是由远端用户调用 muteLocalAudioStream 方法 关闭或开启音频发送触发的。
uid | 用户 ID。 |
muted | 该用户是否静音:
|
|
inlinevirtual |
远端用户取消或恢复发布视频流回调。
当远端用户调用 muteLocalVideoStream 取消或恢复发布视频流时,SDK 会触发该回调向本地用户报告远端用户的发流状况。
uid | 远端用户 UID。 |
muted | 远端用户是否取消发布视频流:
|
|
inlinevirtual |
远端用户开关本地视频采集回调。
提示有远端用户开关了本地视频采集。关闭视频功能是指该用户只能进行语音通话,不能显示、 发送自己的视频,也不能接收、显示别人的视频。 该回调是由远端用户调用 enableVideo 或 disableVideo 方法开启或关闭视频模块触发的。
uid | 用户 ID,提示是哪个用户的视频流。 |
enabled |
|
|
inlinevirtual |
音频设备变化回调(仅适用于 Windows 和 macOS)。
提示系统音频设备状态发生改变,比如耳机被拔出。
deviceId | 音频设备 ID。 |
deviceType | 音频设备类型: MEDIA_DEVICE_TYPE 。 |
deviceState | 音频设备状态:
|
|
inlinevirtual |
回放、音频采集设备、或 App 的音量发生改变。
deviceType | 设备类型定义: MEDIA_DEVICE_TYPE 。 |
volume | 音量:范围 [0,255]。 |
muted |
|
|
inlinevirtual |
提示已成功打开摄像头,可以开始捕获视频。如果摄像头打开失败,可在 onError 中处理相应错误。
从 v2.4.1 起废弃。请改用 onLocalVideoStateChanged 回调中的 LOCAL_VIDEO_STREAM_STATE_CAPTURING (1)。
|
inlinevirtual |
相机对焦区域已改变回调。
该回调表示相机的对焦区域发生了改变。 该回调是由本地用户调用 setCameraFocusPositionPreview 方法改变对焦位置触发的。
x | 发生改变的对焦区域的 x 坐标。 |
y | 发生改变的对焦区域的 y 坐标。 |
width | 发生改变的对焦区域的宽度。 |
height | 发生改变的对焦区域的高度。 |
|
inlinevirtual |
报告本地人脸检测结果。仅适用于 Android 和 iOS 平台。
调用 enableFaceDetection(true) 开启本地人脸检测后,你可以通过该回调实时获取以下人脸检测的信息:
其中,人脸距设备屏幕的距离由 SDK 通过摄像头采集的画面大小和人脸在 View 中的位置拟合计算得出。
distance
)值有一定误差,请不要用它进行精确计算。 imageWidth | 摄像头采集画面的宽度 (px)。 |
imageHeight | 摄像头采集画面的高度 (px)。 |
vecRectangle | 检测到的人脸信息:
|
vecDistance | 人脸距设备屏幕的距离 (cm)。 |
numFaces | 检测的人脸数量。如果为 0,则表示没有检测到人脸。 |
|
inlinevirtual |
摄像头曝光区域已改变回调。
该回调是由本地用户调用 setCameraExposurePosition 方法改变曝光位置触发的。
x | 发生改变的曝光区域的 x 坐标。 |
y | 发生改变的曝光区域的 y 坐标。 |
width | 发生改变的曝光区域的宽度。 |
height | 发生改变的曝光区域的高度。 |
|
inlinevirtual |
本地音乐文件播放已结束回调。
当调用 startAudioMixing 播放本地音乐文件结束后,会触发该回调。如果调用 startAudioMixing 失败,会在 onError 回调里,返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR 。
|
inlinevirtual |
本地用户的音乐文件播放状态已改变回调。
该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和播放状态改变的原因。
onAudioMixingStateChanged
回调报告 AUDIO_MIXING_STATE_PLAYING
的时刻可能与用户听到音乐的时刻不同。因为 SDK 会在解码第一帧音频帧后触发该回调报告 `PLAYING 状态,但在弱网情况下,SDK 无法稳定地接收在线音频包,因此音乐播放不稳定,用户主观感受到的音频开始播放的时刻可能比音频首帧解码的时刻更晚。state | 当前音乐文件播放状态,详见 AUDIO_MIXING_STATE_TYPE |
reason | 音乐文件播放状态改变的原因,详见 AUDIO_MIXING_REASON_TYPE |
|
inlinevirtual |
远端音乐文件播放已开始回调。
当远端有用户调用 startAudioMixing 播放本地音乐文件,会触发该回调。
|
inlinevirtual |
远端音乐文件播放已结束回调。
当远端有用户播放本地音乐文件结束,会触发该回调。
|
inlinevirtual |
音频文件信息回调。
成功调用 getAudioFileInfo 后,SDK 会触发该回调并报告音频文件的路径、时长等信息。
info | 音频文件信息。详见 AudioFileInfo |
error | 信息获取状态。详见 AUDIO_FILE_INFO_ERROR |
|
inlinevirtual |
本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
soundId | 指定音效的 ID。每个音效均有唯一的 ID。 |
|
inlinevirtual |
已解码远端音频首帧的回调。
SDK 完成远端音频首帧解码,并发送给音频模块用以播放时,会触发此回调。有两种情况:
uid | 远端用户 ID |
elapsed | 从本地用户调用 joinChannel 直至该回调触发的延迟,单位为毫秒。 |
|
inlinevirtual |
视频设备变化回调。(仅适用于 Windows 和 macOS)。
该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
deviceId | 视频设备 ID。 |
deviceType | 视频设备类型: MEDIA_DEVICE_TYPE |
deviceState | 视频设备状态:
|
|
inlinevirtual |
本地视频状态发生改变回调
本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态。你可以通过该回调了解当前视频的状态以及出现故障的原因,方便排查问题。
SDK 会在如下情况触发 onLocalVideoStateChanged(LOCAL_VIDEO_STREAM_STATE_FAILED,LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE)
回调:
摄像头输出采集的视频帧时,如果连续 15 帧中,所有视频帧都一样,SDK 触发 onLocalVideoStateChanged(LOCAL_VIDEO_STREAM_STATE_CAPTURING,LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE)
回调。 注意:帧重复检测仅针对分辨率大于 200 × 200,帧率大于等于 10 fps,码率小于 20 Kbps 的视频帧。
localVideoState | 本地视频状态,详见: LOCAL_VIDEO_STREAM_STATE |
error | 本地视频出错原因,详见: LOCAL_VIDEO_STREAM_ERROR |
|
inlinevirtual |
本地或远端视频大小和旋转信息发生改变回调。
uid | 图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0)。 |
width | 视频流的宽度(像素)。 |
height | 视频流的高度(像素)。 |
rotation | 旋转信息 [0,360)。 |
|
inlinevirtual |
远端视频状态发生改变回调。
uid | 发生视频状态改变的远端用户 ID。 |
state | 远端视频流状态。详见 REMOTE_VIDEO_STATE 。 |
reason | 远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON 。 |
elapsed | 从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。 |
|
inlinevirtual |
其他用户启用/关闭本地视频。
提示有其他用户启用/关闭了本地视频功能。关闭视频功能是指该用户只能进行语音通话, 不能显示、发送自己的视频,也不能接收、显示别人的视频。
该回调是由远端用户调用 enableLocalVideo 方法开启或关闭视频采集触发的。
uid | 用户 ID,提示是哪个用户的视频流。 |
enabled |
|
|
inlinevirtual |
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
uid | 发送消息的用户 ID。 |
streamId | Stream ID。 |
data | 接收到的数据。 |
length | 数据长度。 |
|
inlinevirtual |
接收对方数据流消息发生错误的回调。
该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
uid | 发送消息的用户 ID。 |
streamId | Stream ID。 |
code | 错误码: ERROR_CODE_TYPE 。 |
missed | 丢失的消息数量。 |
cached | 数据流中断时,后面缓存的消息数量。 |
|
inlinevirtual |
媒体引擎成功加载的回调。
|
inlinevirtual |
媒体引擎成功启动的回调。
|
inlinevirtual |
报告超分辨率功能是否成功开启。(beta 功能)
调用 enableRemoteSuperResolution 后,SDK 触发该回调报告超分辨率是否成功开启。 如果未成功开启,请通过 reason
排查问题。
uid | 远端用户 ID。 |
enabled | 是否对远端视频成功开启超分辨率:
|
reason | 超分辨率功能未成功开启的原因,详见 SUPER_RESOLUTION_STATE_REASON |
|
inlinevirtual |
报告虚拟背景是否成功开启。
调用 enableVirtualBackground 后,SDK 触发该回调报告虚拟背景是否成功开启。
enabled | 是否已成功开启虚拟背景:
|
reason | 虚拟背景开启出错的原因或开启成功的提示。详见 VIRTUAL_BACKGROUND_SOURCE_STATE_REASON |
|
inlinevirtual |
视频截图结果回调。
成功调用 takeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。
channel | 频道名。 |
uid | 用户 ID。如果 uid 为 0,表示本地用户。 |
filePath | 截图的本地保存路径。 |
width | 图片宽度(px)。 |
height | 图片高度(px)。 |
errCode | 截图成功的提示或失败的原因。
|
|
inlinevirtual |
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调, 并报告当前的转发状态以及相关的错误信息。
state | 跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE 。 |
code | 跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR 。 |
|
inlinevirtual |
|
inlinevirtual |
已发送本地音频首帧回调。
elapsed | 从调用 joinChannel 方法直至该回调被触发的时间。 |
|
inlinevirtual |
已发布本地音频首帧回调。
SDK 会在以下时机触发该回调:
elapsed | 从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。 |
|
inlinevirtual |
已接收远端音频首帧回调。
该回调已废弃。请改用 onRemoteAudioStateChanged
uid | 发送音频帧的远端用户的用户 ID。 |
elapsed | 从调用 joinChannel 方法直至该回调被触发的时间。 |
|
inlinevirtual |
RTMP/RTMPS 推流状态发生改变回调。
RTMP/RTMPS 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。 该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
url | 推流状态发生改变的 URL 地址。 |
state | 当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE |
errCode | 推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR_TYPE |
|
inlinevirtual |
RTMP/RTMPS 推流事件回调。
url | RTMP/RTMPS 推流 URL。 |
eventCode | RTMP/RTMPS 推流事件码。详见 RTMP_STREAMING_EVENT |
|
inlinevirtual |
旁路推流已开启回调。
此方法已废弃,请改用 onRtmpStreamingStateChanged
该回调用于通知主播推流状态。
url | 主播推流的 URL 地址 。 |
error | ERROR_CODE_TYPE 。
|
|
inlinevirtual |
旁路推流已停止回调。
此方法已废弃,请改用 onRtmpStreamingStateChanged
回调用于通知主播停止推流成功。
url | 被删除的 RTMP/RTMPS 推流地址。 |
|
inlinevirtual |
旁路推流设置已被更新回调。
setLiveTranscoding 方法中的直播参数 LiveTranscoding
更新时,onTranscodingUpdated
回调会被触发并向主播报告更新信息。
setLiveTranscoding
方法设置转码参数 LiveTranscoding
时,不会触发此回调。
|
inlinevirtual |
音频路由已发生变化回调。
当音频路由发生变化时,SDK 会触发此回调。
routing | 当前的音频路由。详见 AUDIO_ROUTE_TYPE |
|
inlinevirtual |
本地发布流已回退为音频流回调。
如果你调用了 setLocalPublishFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
isFallbackOrRecover |
|
|
inlinevirtual |
远端订阅流已回退为音频流回调。
如果你调用了 setRemoteSubscribeFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
uid | 远端用户的用户 ID。 |
isFallbackOrRecover |
|
|
inlinevirtual |
该回调已被废弃,请改用 onRemoteAudioStats。
该回调描述远端用户通话中端到端的网络统计信息,通过音频包计算,用客观的数据,如丢包、 网络延迟等,展示当前网络状态。
通话中,当用户收到远端用户/主播发送的音频数据包后 ,会每 2 秒触发一次该回调。
和 onRemoteAudioStats 回调相比,该回调以数据展示当前网络状态,因此更客观。
uid | 用户 ID,指定是哪个用户/主播的音频包。 |
delay | 音频包从发送端到接收端的延时(毫秒)。 |
lost | 音频包从发送端到接收端的丢包率 (%)。 |
rxKBitRate | 远端音频包的接收码率(Kbps)。 |
|
inlinevirtual |
该回调已被废弃,请改用 onRemoteVideoStats。
该回调描述远端用户通话中端到端的网络统计信息,通过视频包计算,用客观的数据,如丢包、 网络延迟等,展示当前网络状态。
通话中,当用户收到远端用户/主播发送的视频数据包后,会每 2 秒触发一次该回调。
和 onRemoteVideoStats 回调相比,该回调以数据展示当前网络状态,因此更客观。
uid | 用户 ID,指定是哪个用户/主播的视频包。 |
delay | 视频包从发送端到接收端的延时(毫秒)。 |
lost | 视频包从发送端到接收端的丢包率 (%)。 |
rxKBitRate | 远端视频包的接收码率(Kbps)。 |
|
inlinevirtual |
麦克风状态已改变回调。
该回调由本地用户调用 enableLocalAudio 方法开启或关闭本地音频采集触发的.
enabled |
|
|
inlinevirtual |
网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。
state | 详见: CONNECTION_STATE_TYPE 。 |
reason | 详见: CONNECTION_CHANGED_REASON_TYPE 。 |
|
inlinevirtual |
报告 Wi-Fi 连接质量不佳的原因和改善 Wi-Fi 连接的操作建议。
调用 enableWirelessAccelerate (true) 开启 Wi-Fi 加速功能后,当 Wi-Fi 连接质量不佳时,SDK 会触发该回调,报告 Wi-Fi 连接质量不佳的原因和改善 Wi-Fi 连接的操作建议。
action
和 wlAccMsg
,提示用户采取网络优化措施,以获得更好的音视频体验。reason | Wi-Fi 连接质量不佳的原因。详见 WLACC_MESSAGE_REASON 。 |
action | 改善 Wi-Fi 连接质量的操作建议。详见 WLACC_SUGGEST_ACTION 。 |
wlAccMsg | 根据 action 的值提供的详细帮助信息:
|
|
inlinevirtual |
报告 Wi-Fi 加速效果。
调用 enableWirelessAccelerate (true) 开启 Wi-Fi 加速功能后,SDK 每隔两秒触发一次该回调,报告当前的 Wi-Fi 加速效果和自加入频道后平均的 Wi-Fi 加速效果。Wi-Fi 加速效果用端到端延时、丢包率和音视频卡顿率三个指标下降的百分比来衡量。
currentStats | 当前的 Wi-Fi 加速效果。详见 WlAccStats 。 |
averageStats | 自加入频道后平均的 Wi-Fi 加速效果。详见 WlAccStats 。 |
|
inlinevirtual |
本地网络类型发生改变回调。
本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中明确当前的网络连接类型。
你可以通过该回调获取正在使用的网络类型;当连接中断时,该回调能辨别引起中断的原因是网络切换还是网络条件不好。
type | 详见: NETWORK_TYPE 。 |
|
inlinevirtual |
本地用户成功注册 User Account 回调。
本地用户成功调用 registerLocalUserAccount 方法注册用户 User Account 或 调用 joinChannelWithUserAccount 加入频道后, SDK 会触发该回调,并告知本地用户的 UID 和 User Account。
uid | 本地用户的 UID |
userAccount | 本地用户的 User Account |
|
inlinevirtual |
远端用户信息已更新回调。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表, 并在本地触发该回调。
uid | 远端用户的 UID |
info | 标识用户信息的 UserInfo 对象,包含用户 UID 和 User Account |
|
inlinevirtual |
屏幕共享信息更新回调。
调用 startScreenCaptureByDisplayId 或 startScreenCaptureByScreenRect 开启屏幕共享,并通过 excludeWindowList
屏蔽指定窗口时,如果窗口屏蔽失败,SDK 会触发该回调。
info | 屏幕共享信息。详见 ScreenCaptureInfo 。 |