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 | onUserJoined (uid_t uid, int elapsed) |
virtual void | onUserOffline (uid_t uid, USER_OFFLINE_REASON_TYPE reason) |
virtual void | onLastmileQuality (int quality) |
virtual void | onLastmileProbeResult (const LastmileProbeResult &result) |
virtual void | onConnectionInterrupted () |
virtual void | onConnectionLost () |
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 (AR::IChannel *rtcChannel, AR::STREAM_PUBLISH_STATE oldState, AR::STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
virtual void | onVideoPublishStateChanged (AR::IChannel *rtcChannel, AR::STREAM_PUBLISH_STATE oldState, AR::STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
virtual void | onAudioSubscribeStateChanged (AR::IChannel *rtcChannel, AR::uid_t) uid, AR::STREAM_SUBSCRIBE_STATE oldState, AR::STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
virtual void | onVideoSubscribeStateChanged (AR::IChannel *rtcChannel, AR::uid_t) uid, AR::STREAM_SUBSCRIBE_STATE oldState, AR::STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
virtual void | onAudioVolumeIndication (const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume) |
virtual void | onActiveSpeaker (uid_t uid) |
virtual void | onFirstLocalVideoFrame (int width, int height, 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 | onCameraExposureAreaChanged (int x, int y, int width, int height) |
virtual void | onAudioMixingFinished () |
virtual void | onAudioMixingStateChanged (AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_ERROR_TYPE errorCode) |
virtual void | onRemoteAudioMixingBegin () |
virtual void | onRemoteAudioMixingEnd () |
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 | 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 | onFirstRemoteAudioFrame (uid_t uid, int elapsed) |
virtual void | onRtmpStreamingStateChanged (const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode) |
virtual void | onStreamPublished (const char *url, int error) |
virtual void | onStreamUnpublished (const char *url) |
virtual void | onTranscodingUpdated () |
virtual void | onStreamInjectedStatus (const char *url, uid_t uid, int status) |
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 | onNetworkTypeChanged (NETWORK_TYPE type) |
virtual void | onSnapshotTaken (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。 |
elapsed | 从 joinChannel 开始到发生此事件过去的时间(毫秒)。 |
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。 |
api | SDK 调用 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 报告当前通话的统计信息,每两秒触发一次。
参数
参数 | 描述 |
---|---|
stats | RTC 引擎统计数据: 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 回调,其中一个包含本地用户的音量信息,另一个包含远端所有用户的音量信息,详见下方参数描述。
参数
参数 | 描述 |
---|---|
speakers | AudioVolumeInfo 数组。 在本地用户的回调中,此数组中包含以下成员: |
speakerNumber | 说话者的人数,取值范围为 [0,3]。 |
totalVolume | (混音后的)总音量,取值范围为 [0,255]。 |
注意事项:
- 若需使用该回调 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 | 该用户是否静音: |
注意事项:
- 频道内的用户(通信场景)或主播(直播场景)人数超过 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 | 该用户是否暂停发送其视频流 |
注意事项:
- 频道内的用户(通信场景)或主播(直播场景)人数超过 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)。
提示有远端用户开关了本地视频采集。关闭视频功能是指该用户只能进行语音通话,不能显示、 发送自己的视频,也不能接收、显示别人的视频。 该回调是由远端用户调用 enableVideo 或 disableVideo 方法开启或关闭视频模块触发的。
参数
参数 | 描述 |
---|---|
uid | 用户 ID,提示是哪个用户的视频流。 |
enabled |
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 |
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 |
onStreamMessage
virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length)
接收到对方数据流消息的回调
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
参数
参数 | 描述 |
---|---|
uid | 发送消息的用户 ID。 |
streamId | Stream ID。 |
data | 接收到的数据。 |
length | 数据长度。 |
onStreamMessageError
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
接收对方数据流消息发生错误的回调
该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
参数
参数 | 描述 |
---|---|
uid | 发送消息的用户 ID。 |
streamId | Stream 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 推流状态发生改变回调
该回调返回本地用户调用 addPublishStreamUrl 或 removePublishStreamUrl 方法的结果。 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 地址 。 |
error | ERROR_CODE_TYPE 。 |
onStreamUnpublished
virtual void onStreamUnpublished(const char *url)
旁路推流已停止回调
此方法已废弃,请改用 onRtmpStreamingStateChanged
回调用于通知主播停止推流成功。
参数
参数 | 描述 |
---|---|
url | 被删除的 RTMP 推流地址。 |
onTranscodingUpdated
virtual void onTranscodingUpdated()
旁路推流设置已被更新回调
setLiveTranscoding 方法中的直播参数 LiveTranscoding 更新时,onTranscodingUpdated 回调会被触发并向主播报告更新信息。
注意事项:
- 首次调用 setLiveTranscoding 方法设置转码参数 LiveTranscoding 时,不会触发此回调。
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 |
注意事项:
- 如果本地发流已回退为音频流,远端的 App 上会收到 onUserMuteVideo 的回调事件。
onRemoteSubscribeFallbackToAudioOnly
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
远端订阅流已回退为音频流回调
如果你调用了 setRemoteSubscribeFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
参数
参数 | 描述 |
---|---|
uid | 远端用户的用户 ID。 |
isFallbackOrRecover |
注意事项:
- 远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 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 |
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 | 截图成功的提示或失败的原因。 |