IRTCEngineEventHandler API Docs

最近更新时间:2022-09-20 05:17:40

Public 成员函数
virtual~IRtcEngineEventHandler ()
virtual voidonWarning (int warn, const char *msg)
virtual voidonError (int err, const char *msg)
virtual voidonJoinChannelSuccess (const char *channel, uid_t uid, int elapsed)
virtual voidonRejoinChannelSuccess (const char *channel, uid_t uid, int elapsed)
virtual voidonLeaveChannel (const RtcStats &stats)
virtual voidonClientRoleChanged (CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)
virtual voidonUserJoined (uid_t uid, int elapsed)
virtual voidonUserOffline (uid_t uid, USER_OFFLINE_REASON_TYPE reason)
virtual voidonLastmileQuality (int quality)
virtual voidonLastmileProbeResult (const LastmileProbeResult &result)
virtual voidonConnectionInterrupted ()
virtual voidonConnectionLost ()
virtual voidonApiCallExecuted (int err, const char *api, const char *result)
virtual voidonRequestToken ()
virtual voidonTokenPrivilegeWillExpire (const char *token)
virtual voidonAudioQuality (uid_t uid, int quality, unsigned short delay, unsigned short lost)
virtual voidonRtcStats (const RtcStats &stats)
virtual voidonNetworkQuality (uid_t uid, int txQuality, int rxQuality)
virtual voidonLocalVideoStats (const LocalVideoStats &stats)
virtual voidonRemoteVideoStats (const RemoteVideoStats &stats)
virtual voidonLocalAudioStats (const LocalAudioStats &stats)
virtual voidonRemoteAudioStats (const RemoteAudioStats &stats)
virtual voidonLocalAudioStateChanged (LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR error)
virtual voidonRemoteAudioStateChanged (uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
virtual voidonAudioPublishStateChanged (AR::IChannel *rtcChannel, AR::STREAM_PUBLISH_STATE oldState, AR::STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
virtual voidonVideoPublishStateChanged (AR::IChannel *rtcChannel, AR::STREAM_PUBLISH_STATE oldState, AR::STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
virtual voidonAudioSubscribeStateChanged (AR::IChannel *rtcChannel, AR::uid_t) uid, AR::STREAM_SUBSCRIBE_STATE oldState, AR::STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
virtual voidonVideoSubscribeStateChanged (AR::IChannel *rtcChannel, AR::uid_t) uid, AR::STREAM_SUBSCRIBE_STATE oldState, AR::STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
virtual voidonAudioVolumeIndication (const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume)
virtual voidonActiveSpeaker (uid_t uid)
virtual voidonFirstLocalVideoFrame (int width, int height, int elapsed)
virtual voidonFirstRemoteVideoDecoded (uid_t uid, int width, int height, int elapsed)
virtual voidonFirstRemoteVideoFrame (uid_t uid, int width, int height, int elapsed)
virtual voidonUserMuteAudio (uid_t uid, bool muted)
virtual voidonUserMuteVideo (uid_t uid, bool muted)
virtual voidonUserEnableVideo (uid_t uid, bool enabled)
virtual voidonAudioDeviceStateChanged (const char *deviceId, int deviceType, int deviceState)
virtual voidonAudioDeviceVolumeChanged (MEDIA_DEVICE_TYPE deviceType, int volume, bool muted)
virtual voidonCameraReady ()
virtual voidonCameraFocusAreaChanged (int x, int y, int width, int height)
virtual voidonCameraExposureAreaChanged (int x, int y, int width, int height)
virtual voidonAudioMixingFinished ()
virtual voidonAudioMixingStateChanged (AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_ERROR_TYPE errorCode)
virtual voidonRemoteAudioMixingBegin ()
virtual voidonRemoteAudioMixingEnd ()
virtual voidonAudioEffectFinished (int soundId)
virtual voidonFirstRemoteAudioDecoded (uid_t uid, int elapsed)
virtual voidonVideoDeviceStateChanged (const char *deviceId, int deviceType, int deviceState)
virtual voidonLocalVideoStateChanged (LOCAL_VIDEO_STREAM_STATE localVideoState, LOCAL_VIDEO_STREAM_ERROR error)
virtual voidonVideoSizeChanged (uid_t uid, int width, int height, int rotation)
virtual voidonRemoteVideoStateChanged (uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
virtual voidonUserEnableLocalVideo (uid_t uid, bool enabled)
virtual voidonStreamMessage (uid_t uid, int streamId, const char *data, size_t length)
virtual voidonStreamMessageError (uid_t uid, int streamId, int code, int missed, int cached)
virtual voidonMediaEngineLoadSuccess ()
virtual voidonMediaEngineStartCallSuccess ()
virtual voidonChannelMediaRelayStateChanged (CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code)
virtual voidonChannelMediaRelayEvent (CHANNEL_MEDIA_RELAY_EVENT code)
virtual voidonFirstLocalAudioFrame (int elapsed)
virtual voidonFirstRemoteAudioFrame (uid_t uid, int elapsed)
virtual voidonRtmpStreamingStateChanged (const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode)
virtual voidonStreamPublished (const char *url, int error)
virtual voidonStreamUnpublished (const char *url)
virtual voidonTranscodingUpdated ()
virtual voidonStreamInjectedStatus (const char *url, uid_t uid, int status)
virtual voidonAudioRouteChanged (AUDIO_ROUTE_TYPE routing)
virtual voidonLocalPublishFallbackToAudioOnly (bool isFallbackOrRecover)
virtual voidonRemoteSubscribeFallbackToAudioOnly (uid_t uid, bool isFallbackOrRecover)
virtual voidonRemoteAudioTransportStats (uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)
virtual voidonRemoteVideoTransportStats (uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)
virtual voidonMicrophoneEnabled (bool enabled)
virtual voidonConnectionStateChanged (CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
virtual voidonNetworkTypeChanged (NETWORK_TYPE type)
virtual voidonSnapshotTaken (const char* channel, uid_t uid, const char* filePath, int width, int height, int errCode)

详细描述

IRtcEngineEventHandler 接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。

接口类的所有方法都由缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如发送消息),否则可能影响 SDK 的运行。

构造及析构函数说明

IRtcEngineEventHandler

析构函数

virtual ~IRtcEngineEventHandler() {}

成员函数说明

onWarning

virtual void onWarning(int warn, const char* msg)

发生警告回调

该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。比如和服务器失去连接时,SDK 可能会上报 WARN_OPEN_CHANNEL_TIMEOUT 警告,同时自动尝试重连。

参数

参数描述
warn警告码,详见 WARN_CODE_TYPE
msg警告信息

注意事项:

  • 部分 Warning Code 在上报给客户之前,会经过映射,映射后的 Warning Code 与原来的 Warning Code 意义相同,但错误类别更清晰,方便客户判断。详见错误代码及映射表

onError

virtual void onError(int err, const char* msg)

发生错误回调

该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 比如启动通话失败时,SDK 会上报 ERR_START_CALL 错误。App 可以提示用户启动通话失败,并调用 leaveChannel 退出频道。

参数

参数描述
err错误代码: ERROR_CODE_TYPE
msg错误描述

注意事项:

  • 部分 Warning Code 在上报给客户之前,会经过映射,映射后的 Warning Code 与原来的 Warning Code 意义相同,但错误类别更清晰,方便客户判断。详见错误代码及映射表

onJoinChannelSuccess

virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed)

加入频道回调

该回调方法表示该客户端成功加入了指定的频道。

channel ID 基于 joinChannel 中指定的 channel name 分配。如果调用 IRtcEngine::joinChannel 时并没有指定 user ID。服务器会自动分配一个

参数

参数描述
channel频道名。
uid用户 ID。如果 joinChannel 中指定了 uid,则此处返回该 ID;否则使用 AR 服务器自动分配的 ID。
elapsedjoinChannel 开始到发生此事件过去的时间(毫秒)。

onRejoinChannelSuccess

virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed)

重新加入频道回调

有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法

参数

参数描述
channel频道名。
uid用户 ID。
elapsed从开始重连到重连成功的时间(毫秒)。

onLeaveChannel

virtual void onLeaveChannel(const RtcStats& stats)

离开频道回调

App 调用 leaveChannel 方法时,SDK提示 App 离开频道成功。在该回调方法中,App 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。App 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。

参数

参数描述
stats通话的统计数据: RtcStats

onClientRoleChanged

virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)

直播场景下用户角色已切换回调

直播场景下,当用户切换角色时会触发此回调,即主播切换为观众时,或观众切换为主播时。 该回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。

参数

参数描述
oldRole切换前的角色: CLIENT_ROLE_TYPE
newRole切换后的角色: CLIENT_ROLE_TYPE

onUserJoined

virtual void onUserJoined(uid_t uid, int elapsed)

远端用户(通信场景)/主播(直播场景)加入当前频道回调

  • 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
  • 直播场景下,该回调提示有主播加入了频道,并返回该主播的 ID。如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。anyRTC建议连麦主播不超过 17 人。

该回调在如下情况下会被触发:

  • 远端用户/主播调用 joinChannel 方法加入频道
  • 远端用户加入频道后调用 setClientRole 将用户角色改变为主播
  • 远端用户/主播网络中断后重新加入频道
  • 主播通过调用 addInjectStreamUrl 方法成功输入在线媒体流

参数

参数描述
uid新加入频道的远端用户/主播 ID。
elapsed从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。

注意事项: 直播场景下

  • 主播间能相互收到新主播加入频道的回调,并能获得该主播的 uid。
  • 观众也能收到新主播加入频道的回调,并能获得该主播的 uid。
  • 当 Web 端加入直播频道时,只要 Web 端有推流,SDK 会默认该 Web 端为主播,并触发该回调。

onUserOffline

virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason)

远端用户(通信场景)/主播(直播场景)离开当前频道回调

提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:

  • 正常离开的时候,远端用户/主播会发送类似“再见”的消息。接收此消息后,判断用户离开频道。
  • 超时掉线的依据是,在一定时间内(直播场景稍有延时), 用户没有收到对方的任何数据包,则判定为对方掉线。在网络较差的情况下,有可能会误报。 我们建议使用 anyRTC 实时消息 SDK 来做可靠的掉线检测。

参数

参数描述
uid离线用户或主播的用户 ID。
reason离线原因: USER_OFFLINE_REASON_TYPE

onLastmileQuality

virtual void onLastmileQuality(int quality)

通话前网络上下行 last mile 质量报告回调

该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到 anyRTC 边缘服务器的网络状态。 在调用 enableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。

参数

参数描述
quality网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。详见: QUALITY_TYPE

onLastmileProbeResult

virtual void onLastmileProbeResult(const LastmileProbeResult& result)

通话前网络质量探测报告回调

通话前网络上下行 Last mile 质量探测报告回调。在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。

参数

参数描述
result上下行 Last mile 质量探测结果。 详见: LastmileProbeResult

onConnectionInterrupted

virtual void onConnectionInterrupted()

网络连接中断回调

该回调已经废弃。被 onConnectionStateChanged(CONNECTION_STATE_RECONNECTING, CONNECTION_CHANGED_INTERRUPTED) 取代。

SDK 在和服务器建立连接后,失去了网络连接超过 4 秒,会触发该回调。在触发事件后,SDK 会主动重连服务器,所以该事件可以用于 UI 提示。 与 onConnectionLost 回调的区别是:

  • onConnectionInterrupted 回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。
  • onConnectionLost 回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。

如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。

onConnectionLost

virtual void onConnectionLost()

网络连接丢失回调

SDK 在调用 joinChannel 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。

onConnectionInterrupted 的区别是:

  • onConnectionInterrupted 回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。
  • onConnectionLost 回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。

如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。

onApiCallExecuted

virtual void onApiCallExecuted(int err, const char* api, const char* result)

API 方法已执行回调

参数

参数描述
err当该方法调用失败时 SDK 返回的错误码。如果方法调用失败,会返回错误码 ERROR_CODE_TYPE 。如果该方法调用成功,SDK 将返回 0。
apiSDK 调用 API 的调用结果。

onRequestToken

virtual void onRequestToken()

Token 已过期回调

在调用 joinChannel, 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。 该回调通知 App 需要生成新的 Token,然后调用 joinChannel,使用新的 Token 重新加入频道。

onTokenPrivilegeWillExpire

virtual void onTokenPrivilegeWillExpire(const char* token)

Token 服务即将过期回调

在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。

参数

参数描述
token即将服务失效的 Token。

onAudioQuality

virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost)

远端声音质量回调

该方法已经废弃。请改用 onRemoteAudioStats 方法。

该回调描述远端用户在通话中的音频质量,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。

参数

参数描述
uid用户 ID,指定是谁发的音频流。
quality语音质量,详见: QUALITY_TYPE
delay音频包从发送端到接收端的延迟(毫秒)。包括声音采样前处理、网络传输、网络抖动缓冲引起的延迟。
lost音频包从发送端到接收端的丢包率 (%)。

onRtcStats

virtual void onRtcStats(const RtcStats& stats)

当前通话统计回调

SDK 定期向 App 报告当前通话的统计信息,每两秒触发一次。

参数

参数描述
statsRTC 引擎统计数据: RtcStats

onNetworkQuality

virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality)

通话中每个用户的网络上下行 last mile 质量报告回调

该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到 AR 边缘服务器的网络状态。 该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。

参数

参数描述
uid用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。
txQuality该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题,但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE
rxQuality该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE

onLocalVideoStats

virtual void onLocalVideoStats(const LocalVideoStats& stats)

本地视频流统计信息回调

该回调描述本地设备发送视频流的统计信息,每 2 秒触发一次。

参数

参数描述
stats本地视频流统计信息。详见: LocalVideoStats

onRemoteVideoStats

virtual void onRemoteVideoStats(const RemoteVideoStats& stats)

通话中远端视频流的统计信息回调

该回调描述远端用户在通话中端到端的视频流统计信息, 针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播, 该回调每 2 秒会被触发多次。

参数

参数描述
stats远端视频统计数据。详见: RemoteVideoStats

onLocalAudioStats

virtual void onLocalAudioStats(const LocalAudioStats& stats)

通话中本地音频流的统计信息回调

该回调描述本地设备发送音频流的统计信息。SDK 每 2 秒触发该回调一次。

参数

参数描述
stats本地音频统计数据。详见 LocalAudioStats

onRemoteAudioStats

virtual void onRemoteAudioStats(const RemoteAudioStats& stats)

通话中远端音频流的统计信息回调

用于取代 onAudioQuality 回调。 该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。

参数

参数描述
stats接收到的远端音频统计数据,详细定义见: RemoteAudioStats

onLocalAudioStateChanged

virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR error)

本地音频状态发生改变回调

本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态), SDK 会触发该回调报告当前的本地音频状态。在本地音频出现故障时, 该回调可以帮助你了解当前音频的状态以及出现故障的原因,方便你排查问题。

参数

参数描述
state当前的本地音频状态。详见 LOCAL_AUDIO_STREAM_STATE
error本地音频出错原因。详见 LOCAL_AUDIO_STREAM_ERROR

注意事项:

  • 当状态为 LOCAL_AUDIO_STREAM_STATE_FAILED (3) 时, 你可以在 error 参数中查看返回的错误信息。

onRemoteAudioStateChanged

virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)

远端音频流状态发生改变回调

远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。

参数

参数描述
uid发生音频状态改变的远端用户 ID。
state远端音频流状态。 详见 REMOTE_AUDIO_STATE
reason远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON
elapsed从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。

注意事项:

  • 频道内的用户(通信场景)或主播(直播场景)人数超过 17 人时,该回调不生效。

onAudioPublishStateChanged

virtual void onAudioPublishStateChanged(AR::IChannel *rtcChannel, AR::STREAM_PUBLISH_STATE oldState, AR::STREAM_PUBLISH_STATE newState, int elapseSinceLastState)

音频发布状态改变回调

自从 v4.2.1

参数

参数描述
channel频道名。
oldState之前的发布状态,详见 STREAM_PUBLISH_STATE
newState当前的发布状态,详见 STREAM_PUBLISH_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

onVideoPublishStateChanged

virtual void onVideoPublishStateChanged(AR::IChannel *rtcChannel, AR::STREAM_PUBLISH_STATE oldState, AR::STREAM_PUBLISH_STATE newState, int elapseSinceLastState)

视频发布状态改变回调

自从 v4.2.1

参数

参数描述
channel频道名。
oldState之前的发布状态,详见 STREAM_PUBLISH_STATE
newState当前的发布状态,详见 STREAM_PUBLISH_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

onAudioSubscribeStateChanged

virtual void onAudioSubscribeStateChanged(AR::IChannel *rtcChannel, AR::uid_t uid, AR::STREAM_SUBSCRIBE_STATE oldState, AR::STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)

音频订阅状态发生改变回调

自从 v4.2.1

参数

参数描述
channel频道名。
oldState之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
newState当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

onVideoSubscribeStateChanged

virtual void onVideoSubscribeStateChanged(AR::IChannel *rtcChannel, AR::uid_t uid, AR::STREAM_SUBSCRIBE_STATE oldState, AR::STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)

视频订阅状态发生改变回调

自从 v4.2.1

参数

参数描述
channel频道名。
oldState之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
newState当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

onAudioVolumeIndication

virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber, int totalVolume)

提示频道内谁正在说话、说话者音量及本地用户是否在说话的回调

该回调报告频道内瞬时音量最高的几个用户(最多三个用户)的用户 ID、他们的音量及本地用户是否在说话。

该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启;开启后,无论频道内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发 onAudioVolumeIndication 回调。每次触发,用户会收到两个独立的 onAudioVolumeIndication 回调,其中一个包含本地用户的音量信息,另一个包含远端所有用户的音量信息,详见下方参数描述。

参数

参数描述
speakersAudioVolumeInfo 数组。
在本地用户的回调中,此数组中包含以下成员:
  • uid = 0;
  • volume 等于 totalVolume,报告本地用户混音后的音量;
  • vad,报告本地用户人声状态。
  • 在远端用户的回调中,此数组中包含以下成员:
  • uid volume 为说话者各自混音后的音量;
  • uid 为每位说话者各自的用户 ID;
  • vad = 0,对远端用户无效。
  • 如果报告的 speakers 数组为空,则表示此时远端没有人说话。
    speakerNumber说话者的人数,取值范围为 [0,3]。
  • - 在本地用户的回调中,无论本地用户是否说话,speakerNumber 始终为 1。
  • 在远端用户的回调中,若远端用户大于 3,则此回调会报告瞬时音量最高的三位用户的音量信息,此时 speakerNumber 值为 3。
  • totalVolume(混音后的)总音量,取值范围为 [0,255]。
  • 在本地用户的回调中,totalVolume 为本地用户混音后的音量。
  • 在远端用户的回调中,totalVolume 为所有说话者混音后的总音量。
  • >

    注意事项:

    • 若需使用该回调 speakers 数组中的 vad 参数(即本地人声检测功能),请在 enableAudioVolumeIndication 方法中设置 report_vad 为 true。
    • 如果有用户将自己静音(调用了 muteLocalAudioStream),会对该回调的行为产生影响。
      • 本地用户静音后 SDK 即不再报告本地用户的音量提示回调。
      • 远端说话者静音后 20 秒,远端的音量提示回调中将不再包含该用户;如果远端所有用户都将自己静音,20 秒后 SDK 不再报告远端用户的音量提示回调。

    onActiveSpeaker

    virtual void onActiveSpeaker(uid_t uid)

    监测到活跃用户回调

    如果用户开启了 enableAudioVolumeIndication 功能,则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的用户 ID。

    参数

    参数描述
    uid当前时间段声音最大的用户的用户 ID。如果返回的 uid 为 0,则默认为本地用户。

    注意事项:

    • 你需要开启 enableAudioVolumeIndication 方法才能收到该回调。
    • uid 返回的是当前时间段内声音最大的用户的用户 ID,而不是瞬时声音最大的用户的用户 ID。

    onFirstLocalVideoFrame

    virtual void onFirstLocalVideoFrame(int width, int height, int elapsed)

    已显示本地视频首帧回调

    本地视频首帧显示在本地视图上时,SDK 会触发此回调。

    参数

    参数描述
    width本地渲染视频的宽 (px) 。
    height本地渲染视频的高 (px)。
    elapsed从调用 joinChannel 到发生此事件过去的时间(毫秒)。如果在 joinChannel 前调用了 startPreview,则是从 startPreview 到发生此事件过去的时间。

    onFirstRemoteVideoFrame

    virtual void onFirstRemoteVideoFrame(iuid_t uid,int width,int height,int elapsed)

    已显示首帧远端视频回调

    第一帧远端视频显示在视图上时,触发此调用。 App 可在此调用中获知出图时间(elapsed)。

    参数

    参数描述
    uid用户 ID,指定是哪个用户的视频流 。
    width视频流宽(px) 。
    height视频的高 (px)。
    elapsed从调用 joinChannel 到发生此事件过去的时间(毫秒)。

    onFirstRemoteVideoDecoded

    virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed)

    已接收到远端视频并完成解码回调

    该回调已被废弃,请改用 onRemoteVideoStateChanged 回调的:

    • REMOTE_VIDEO_STATE_STARTING (1)。
    • REMOTE_VIDEO_STATE_DECODING (2)。

    引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的 view。有两种情况:

    • 远端用户首次上线后发送视频。
    • 远端用户视频离线再上线后发送视频。出现这种中断的可能原因包括:
    • 远端用户离开频道。
    • 远端用户掉线。
    • 远端用户调用 muteLocalVideoStream 方法停止发送本地视频流。
    • 远端用户调用 disableVideo 方法关闭视频模块。

    参数

    参数描述
    uid用户 ID,指定是哪个用户的视频流。
    width本地渲染视频的高 (px)。
    height从调用 joinChannel 到发生此事件过去的时间(毫秒)。如果在 joinChannel 前调用了 startPreview,则是从 startPreview 到发生此事件过去的时间。
    elapsed从本地调用 joinChannel 开始到该回调触发的延迟(毫秒)。

    onUserMuteAudio

    virtual void onUserMuteAudio(uid_t uid, bool muted)

    远端用户静音回调

    该回调已被废弃,请改用 onRemoteAudioStateChanged 回调的:

    提示有远端用户已将其音频流静音(或取消静音)。

    该回调是由远端用户调用 muteLocalAudioStream 方法关闭或开启音频发送触发的。

    参数

    参数描述
    muted该用户是否静音:
  • true: 该用户已将音频静音;
  • false: 该用户取消了音频静音。
  • 注意事项:

    • 频道内的用户(通信场景)或主播(直播场景)人数超过 17 人时,该回调不生效。

    onUserMuteVideo

    virtual void onUserMuteVideo(uid_t uid, bool muted)

    远端用户暂停/恢复发送视频流回调

    该回调已废弃。你也可以使用 onRemoteVideoStateChanged 回调的:

    • REMOTE_VIDEO_STATE_STOPPED (0) 和 REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5) 。
    • REMOTE_VIDEO_STATE_DECODING (2) 和 REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6)。

    该回调是由远端用户调用 muteLocalVideoStream 方法关闭或开启视频发送触发的。

    参数

    参数描述
    uid远端用户 ID。
    muted该用户是否暂停发送其视频流
  • true: 该用户已暂停发送其视频流;
  • false: 该用户已恢复发送其视频流。
  • 注意事项:

    • 频道内的用户(通信场景)或主播(直播场景)人数超过 17 人时,该回调不生效。

    onUserEnableVideo

    virtual void onUserEnableVideo(uid_t uid, bool enabled)

    远端用户开关本地视频采集回调

    该回调已被废弃,请改用 onRemoteVideoStateChanged 回调的:

    • REMOTE_VIDEO_STATE_STOPPED (0) 和 REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5)。
    • REMOTE_VIDEO_STATE_DECODING (2) 和 REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6)。

    提示有远端用户开关了本地视频采集。关闭视频功能是指该用户只能进行语音通话,不能显示、 发送自己的视频,也不能接收、显示别人的视频。 该回调是由远端用户调用 enableVideodisableVideo 方法开启或关闭视频模块触发的。

    参数

    参数描述
    uid用户 ID,提示是哪个用户的视频流。
    enabled
  • true: 该用户已启用了视频功能。启用后,该用户可以进行视频通话或直播。
  • false: 该用户已关闭了视频功能。关闭后,该用户只能进行语音通话或直播,不能显示、 发送自己的视频,也不能接收、显示别人的视频。
  • onAudioDeviceStateChanged

    virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState)

    音频设备变化回调

    提示系统音频设备状态发生改变,比如耳机被拔出。

    参数

    参数描述
    deviceId设备 ID。
    deviceType设备类型定义: MEDIA_DEVICE_TYPE
    deviceState设备状态定义: MEDIA_DEVICE_STATE_TYPE

    onAudioDeviceVolumeChanged

    virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted)

    回放、录音设备、或 App 的音量发生改变

    参数

    参数描述
    deviceType设备类型定义: MEDIA_DEVICE_TYPE
    volume音量:范围 [0,255]。
    muted
  • true: 音频设备已被静音;
  • false: 音频设备未被静音。
  • onCameraReady

    virtual void onCameraReady()

    摄像头就绪回调

    提示已成功打开摄像头,可以开始捕获视频。如果摄像头打开失败,可在 onError 中处理相应错误。 该回调已经废弃,请改用 onLocalVideoStateChanged 回调中的 LOCAL_VIDEO_STREAM_STATE_CAPTURING (1)。

    onCameraFocusAreaChanged

    virtual void onCameraFocusAreaChanged(int x, int y, int width, int height)

    相机对焦区域已改变回调

    该回调表示相机的对焦区域发生了改变。 该回调是由本地用户调用 setCameraFocusPositionPreview 方法改变对焦位置触发的。

    参数

    参数描述
    x发生改变的对焦区域的 x 坐标。
    y发生改变的对焦区域的 y 坐标。
    width发生改变的对焦区域的宽度。
    height发生改变的对焦区域的高度。

    注意事项:

    • 该回调只适用于 Android 和 iOS 平台。

    onCameraExposureAreaChanged

    virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)

    摄像头曝光区域已改变回调

    该回调是由本地用户调用 setCameraExposurePosition 方法改变曝光位置触发的。

    参数

    参数描述
    x发生改变的对焦区域的 x 坐标。
    y发生改变的对焦区域的 y 坐标。
    width发生改变的对焦区域的宽度。
    height发生改变的对焦区域的高度。

    注意事项:

    • 该回调只适用于 Android 和 iOS 平台。

    onAudioMixingFinished

    virtual void onAudioMixingFinished()

    本地音乐文件播放已结束回调

    当调用 startAudioMixing 播放本地音乐文件结束后,会触发该回调。如果调用 startAudioMixing 失败,会在 onError 回调里,返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR 。

    onAudioMixingStateChanged

    virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_ERROR_TYPE errorCode)

    本地用户的音乐文件播放状态已改变回调

    该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和错误码。

    如果本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL,SDK 会返回警告码 WARN_AUDIO_MIXING_OPEN_ERROR (701)。

    参数

    参数描述
    state音乐文件播放状态,详见 AUDIO_MIXING_STATE_TYPE
    errorCode错误码,详见 AUDIO_MIXING_ERROR_TYPE

    onRemoteAudioMixingBegin

    virtual void onRemoteAudioMixingBegin()

    远端音乐文件播放已开始回调

    当远端有用户调用 startAudioMixing 播放本地音乐文件,会触发该回调。

    onRemoteAudioMixingEnd

    virtual void onRemoteAudioMixingEnd()

    远端音乐文件播放已结束回调

    当远端有用户播放本地音乐文件结束,会触发该回调

    onAudioEffectFinished

    virtual void onAudioEffectFinished(int soundId)

    本地音效文件播放已结束回调

    当播放音效结束后,会触发该回调。

    参数

    参数描述
    soundId指定音效的 ID。每个音效均有唯一的 ID。

    onFirstRemoteAudioDecoded

    virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed)

    已解码远端音频首帧的回调

    该回调已废弃。请改用 onRemoteAudioStateChanged

    SDK 完成远端音频首帧解码,并发送给音频模块用以播放时,会触发此回调。有两种情况:

    • 远端用户首次上线后发送音频
    • 远端用户音频离线再上线发送音频。音频离线指本地在 15 秒内没有收到音频包,可能有如下原因:
    • 远端用户离开频道
    • 远端用户掉线
    • 远端用户调用 muteLocalAudioStream 方法停止发送音频流
    • 远端用户调用 disableAudio 方法关闭音频

    参数

    参数描述
    uid远端用户 ID
    elapsed从本地用户调用 joinChannel 直至该回调触发的延迟,单位为毫秒。

    onVideoDeviceStateChanged

    virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState)

    视频设备变化回调

    该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。

    参数

    参数描述
    deviceId设备 ID。
    deviceType设备类型: MEDIA_DEVICE_TYPE
    | **deviceState** |     设备状态: [MEDIA_DEVICE_STATE_TYPE](namespace/win_namespace_rtc#media_device_state_type) 。 |
    

    onLocalVideoStateChanged

    virtual void onLocalVideoStateChanged(LOCAL_VIDEO_STREAM_STATE localVideoState, LOCAL_VIDEO_STREAM_ERROR error)

    本地视频状态发生改变回调

    本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态。

    在本地视频出现故障时,你可以通过该回调了解当前视频的状态以及出现故障的原因,方便排查问题。

    参数

    参数描述
    localVideoState本地视频状态,详见: LOCAL_VIDEO_STREAM_STATE 。当本地视频状态为 LOCAL_VIDEO_STREAM_STATE_FAILED (3) 时,你可以在 error 参数中查看返回的错误原因。
    error本地视频出错原因,详见: LOCAL_VIDEO_STREAM_ERROR

    注意事项:

    • 对某些机型而言,当本地视频采集设备正在使用中时,SDK 不会在本地视频状态发生改变时触发该回调,你需要自行做超时判断。

    onVideoSizeChanged

    virtual void onVideoSizeChanged(uid_t uid, int width, int height, int rotation)

    本地或远端视频大小和旋转信息发生改变回调

    参数

    参数描述
    uid图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0)。
    width视频流的宽度(像素)。
    height视频流的高度(像素)。
    rotation旋转信息 [0,360)。

    onRemoteVideoStateChanged

    virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)

    远端视频状态发生改变回调

    参数

    参数描述
    uid发生视频状态改变的远端用户 ID。
    state远端视频流状态。详见REMOTE_VIDEO_STATE
    reason远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON
    elapsed从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。

    注意事项:

    • 频道内的用户(通信场景)或主播(直播场景)人数超过 17 人时,该回调不生效。

    onUserEnableLocalVideo

    virtual void onUserEnableLocalVideo(uid_t uid, bool enabled)

    其他用户启用/关闭本地视频

    该回调已被废弃,请改用 onRemoteVideoStateChanged 回调的:

    • REMOTE_VIDEO_STATE_STOPPED (0) 和 REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5)。
    • REMOTE_VIDEO_STATE_DECODING (2) 和 REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6)。

    提示有其他用户启用/关闭了本地视频功能。关闭视频功能是指该用户只能进行语音通话, 不能显示、发送自己的视频,也不能接收、显示别人的视频. 该回调是由远端用户调用 enableLocalVideo 方法开启或关闭视频采集触发的。

    参数

    参数描述
    uid用户 ID,提示是哪个用户的视频流。
    enable
  • true: 该用户已启用视频功能。启用后,其他用户可以接收到该用户的视频流。
  • false: 该用户已关闭视频功能。关闭后,该用户仍然可以接收其他用户的视频流, 但其他用户接收不到该用户的视频流。
  • onStreamMessage

    virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length)

    接收到对方数据流消息的回调

    该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。

    参数

    参数描述
    uid发送消息的用户 ID。
    streamIdStream ID。
    data接收到的数据。
    length数据长度。

    onStreamMessageError

    virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)

    接收对方数据流消息发生错误的回调

    该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。

    参数

    参数描述
    uid发送消息的用户 ID。
    streamIdStream ID。
    code错误码: ERROR_CODE_TYPE
    missed丢失的消息数量。
    cached数据流中断时,后面缓存的消息数量。

    onMediaEngineLoadSuccess

    virtual void onMediaEngineLoadSuccess()

    媒体引擎成功加载的回调

    onMediaEngineStartCallSuccess

    virtual void onMediaEngineStartCallSuccess()

    媒体引擎成功启动的回调

    onChannelMediaRelayStateChanged

    virtual void onChannelMediaRelayStateChanged(CHANNEL_MEDIA_RELAY_STATE state,CHANNEL_MEDIA_RELAY_ERROR code)

    跨频道媒体流转发状态发生改变回调

    当跨频道媒体流转发状态发生改变时,SDK 会触发该回调, 并报告当前的转发状态以及相关的错误信息。

    参数

    参数描述
    state跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE
    code跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR

    onChannelMediaRelayEvent

    virtual void onChannelMediaRelayEvent(CHANNEL_MEDIA_RELAY_EVENT code)

    跨频道媒体流转发事件回调

    该回调报告跨频道媒体流转发过程中发生的事件。

    参数

    参数描述
    code跨频道媒体流转发事件码。详见 CHANNEL_MEDIA_RELAY_EVENT

    onFirstLocalAudioFrame

    virtual void onFirstLocalAudioFrame(int elapsed)

    已发送本地音频首帧回调

    参数

    参数描述
    elapsed从调用 joinChannel 方法直至该回调被触发的时间。

    onFirstRemoteAudioFrame

    virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed)

    已接收远端音频首帧回调

    该回调已废弃。请改用 onRemoteAudioStateChanged

    参数

    参数描述
    uid发送音频帧的远端用户的用户 ID。
    elapsed从调用 joinChannel 方法直至该回调被触发的时间。

    onRtmpStreamingStateChanged

    virtual void onRtmpStreamingStateChanged(const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode)

    RTMP 推流状态发生改变回调

    该回调返回本地用户调用 addPublishStreamUrlremovePublishStreamUrl 方法的结果。 RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。 该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。

    参数

    参数描述
    url推流状态发生改变的 URL 地址。
    state当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE 。当推流状态为 RTMP_STREAM_PUBLISH_STATE_FAILURE (4) 时,你可以在 errorCode 参数中查看返回的错误信息。
    errCode推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR

    onStreamPublished

    virtual void onStreamPublished(const char *url, int error)

    旁路推流已开启回调

    此方法已废弃,请改用 onRtmpStreamingStateChanged 该回调用于通知主播推流状态。

    参数

    参数描述
    url主播推流的 URL 地址 。
    errorERROR_CODE_TYPE
  • ERR_OK (0): 推流成功。
  • ERR_FAILED (1): 推流失败。
  • ERR_INVALID_ARGUMENT (2): 参数错误。如果你在调用 addPublishStreamUrl 前没有调用 setLiveTranscoding 配置 LiveTranscoding ,SDK 会回调 ERR_INVALID_ARGUMENT(2) 。
  • ERR_TIMEDOUT (10): 推流超时未成功。
  • ERR_ALREADY_IN_USE (19): 推流地址已推流。
  • ERR_ABORTED (20): SDK 与推流服务器断开连接。推流中断。
  • ERR_RESOURCE_LIMITED (22): 后台没有足够资源推流。
  • ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH (130): 推流已加密不能推流。
  • ERR_PUBLISH_STREAM_CDN_ERROR (151)
  • ERR_PUBLISH_STREAM_NUM_REACH_LIMIT (152)
  • ERR_PUBLISH_STREAM_NOT_AUTHORIZED (153)
  • ERR_PUBLISH_STREAM_INTERNAL_SERVER_ERROR (154)
  • ERR_PUBLISH_STREAM_FORMAT_NOT_SUPPORTED (156)
  • onStreamUnpublished

    virtual void onStreamUnpublished(const char *url)

    旁路推流已停止回调

    此方法已废弃,请改用 onRtmpStreamingStateChanged

    回调用于通知主播停止推流成功。

    参数

    参数描述
    url被删除的 RTMP 推流地址。

    onTranscodingUpdated

    virtual void onTranscodingUpdated()

    旁路推流设置已被更新回调

    setLiveTranscoding 方法中的直播参数 LiveTranscoding 更新时,onTranscodingUpdated 回调会被触发并向主播报告更新信息。

    注意事项:

    onStreamInjectedStatus

    virtual void onStreamInjectedStatus(const char* url, uid_t uid, int status)

    输入在线媒体流状态回调

    参数

    参数描述
    url在线媒体流的地址。
    uid用户 ID。
    status输入的在线媒体流状态: INJECT_STREAM_STATUS

    注意事项:

    • 该回调只适用于 Android 和 iOS 平台。

    onAudioRouteChanged

    virtual void onAudioRouteChanged(AUDIO_ROUTE_TYPE routing)

    语音路由已发生变化回调

    当语音路由发生变化时,SDK 会触发此回调。

    参数

    参数描述
    routing语音路由。详见: AUDIO_ROUTE_TYPE

    注意事项:

    • 该回调只适用于 Android 和 iOS 平台。

    onLocalPublishFallbackToAudioOnly

    virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover)

    本地发布流已回退为音频流回调

    如果你调用了 setLocalPublishFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。

    参数

    参数描述
    isFallbackOrRecover
  • true: 由于网络环境不理想,本地发布的媒体流已回退为音频流;
  • false: 由于网络环境改善,发布的音频流已恢复为音视频流。
  • 注意事项:

    • 如果本地发流已回退为音频流,远端的 App 上会收到 onUserMuteVideo 的回调事件。

    onRemoteSubscribeFallbackToAudioOnly

    virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)

    远端订阅流已回退为音频流回调

    如果你调用了 setRemoteSubscribeFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。

    参数

    参数描述
    uid远端用户的用户 ID。
    isFallbackOrRecover
  • true: 由于网络环境不理想,远端订阅流已回退为音频流;
  • false: 由于网络环境改善,订阅的音频流已恢复为音视频流。
  • 注意事项:

    • 远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 RemoteVideoStats 来监控远端视频大小流的切换

    onRemoteAudioTransportStats

    virtual void onRemoteAudioTransportStats( uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)

    通话中远端音频流传输的统计信息回调

    该回调已被废弃,请改用 onRemoteAudioStats

    该回调描述远端用户通话中端到端的网络统计信息,通过音频包计算,用客观的数据,如丢包、 网络延迟等,展示当前网络状态。

    通话中,当用户收到远端用户/主播发送的音频数据包后 ,会每 2 秒触发一次该回调。

    onRemoteAudioStats 回调相比,该回调以数据展示当前网络状态,因此更客观。

    参数

    参数描述
    uid用户 ID,指定是哪个用户/主播的音频包。
    delay音频包从发送端到接收端的延时(毫秒)。
    lost音频包从发送端到接收端的丢包率 (%)。
    rxKBitRate远端音频包的接收码率(Kbps)。

    onRemoteVideoTransportStats

    virtual void onRemoteVideoTransportStats( uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)

    通话中远端视频流传输的统计信息回调

    该回调已被废弃,请改用 onRemoteVideoStats

    该回调描述远端用户通话中端到端的网络统计信息,通过视频包计算,用客观的数据,如丢包、 网络延迟等,展示当前网络状态。

    通话中,当用户收到远端用户/主播发送的视频数据包后,会每 2 秒触发一次该回调。

    onRemoteVideoStats 回调相比,该回调以数据展示当前网络状态,因此更客观。

    参数

    参数描述
    uid用户 ID,指定是哪个用户/主播的视频包。
    delay视频包从发送端到接收端的延时(毫秒)。
    lost视频包从发送端到接收端的丢包率 (%)。
    rxKBitRate远端视频包的接收码率(Kbps)。

    onMicrophoneEnabled

    virtual void onMicrophoneEnabled(bool enabled)

    通麦克风状态已改变回调

    该回调已被废弃,请改用 onLocalAudioStateChanged 回调的:

    • LOCAL_AUDIO_STREAM_STATE_STOPPED (0)。
    • LOCAL_AUDIO_STREAM_STATE_STOPPED (0)。

    该回调由本地用户调用 enableLocalAudio 方法开启或关闭本地音频采集触发的.

    参数

    参数描述
    enabled
  • true: 麦克风已启用;
  • false: 麦克风已禁用。
  • onConnectionStateChanged

    virtual void onConnectionStateChanged( CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)

    网络连接状态已改变回调

    该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。

    参数

    参数描述
    state详见: CONNECTION_STATE_TYPE
    reason详见: CONNECTION_CHANGED_REASON_TYPE

    onNetworkTypeChanged

    virtual void onNetworkTypeChanged(NETWORK_TYPE type)

    本地网络类型发生改变回调

    本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中明确当前的网络连接类型。

    你可以通过该回调获取正在使用的网络类型;当连接中断时,该回调能辨别引起中断的原因是网络切换还是网络条件不好。

    参数

    参数描述
    type详见: NETWORK_TYPE

    onSnapshotTaken

    virtual void onSnapshotTaken(const char* channel, uid_t uid, const char* filePath, int width, int height, int errCode) {

    (void)channel;
    (void)uid;
    (void)filePath;
    (void)width;
    (void)height;
    (void)errCode;
    

    }

    视频截图结果回调

    成功调用 takeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。

    参数

    参数描述
    channel频道名。
    uid用户 ID。
    filePath截图的本地保存路径。
    width图片宽度(px)。
    height图片高度(px)。
    errCode截图成功的提示或失败的原因。
  • 0:截图成功。
  • < 0: 截图失败。