Public 成员函数 | |
virtual | ~IChannelEventHandler () |
virtual void | onChannelWarning (IChannel *rtcChannel, int warn, const char *msg) |
virtual void | onChannelError (IChannel *rtcChannel, int err, const char *msg) |
virtual void | onJoinChannelSuccess (IChannel *rtcChannel, uid_t uid, int elapsed) |
virtual void | onRejoinChannelSuccess (IChannel *rtcChannel, uid_t uid, int elapsed) |
virtual void | onLeaveChannel (IChannel *rtcChannel, const RtcStats &stats) |
virtual void | onClientRoleChanged (IChannel *rtcChannel, CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) |
virtual void | onUserJoined (IChannel *rtcChannel, uid_t uid, int elapsed) |
virtual void | onUserOffline (IChannel *rtcChannel, uid_t uid, USER_OFFLINE_REASON_TYPE reason) |
virtual void | onConnectionLost (IChannel *rtcChannel) |
virtual void | onRequestToken (IChannel *rtcChannel) |
virtual void | onTokenPrivilegeWillExpire (IChannel *rtcChannel, const char *token) |
virtual void | onRtcStats (IChannel *rtcChannel, const RtcStats &stats) |
virtual void | onNetworkQuality (IChannel *rtcChannel, uid_t uid, int txQuality, int rxQuality) |
virtual void | onRemoteVideoStats (IChannel *rtcChannel, const RemoteVideoStats &stats) |
virtual void | onRemoteAudioStats (IChannel *rtcChannel, const RemoteAudioStats &stats) |
virtual void | onRemoteAudioStateChanged (IChannel *rtcChannel, uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) |
virtual void | onActiveSpeaker (IChannel *rtcChannel, uid_t uid) |
virtual void | onVideoSizeChanged (IChannel *rtcChannel, uid_t uid, int width, int height, int rotation) |
virtual void | onRemoteVideoStateChanged (IChannel *rtcChannel, uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) |
virtual void | onStreamMessage (IChannel *rtcChannel, uid_t uid, int streamId, const char *data, size_t length) |
virtual void | onStreamMessageError (IChannel *rtcChannel, uid_t uid, int streamId, int code, int missed, int cached) |
virtual void | onChannelMediaRelayStateChanged (IChannel *rtcChannel, CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code) |
virtual void | onChannelMediaRelayEvent (IChannel *rtcChannel, CHANNEL_MEDIA_RELAY_EVENT code) |
virtual void | onRtmpStreamingStateChanged (IChannel *rtcChannel, const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode) |
virtual void | onTranscodingUpdated (IChannel *rtcChannel) |
virtual void | onStreamInjectedStatus (IChannel *rtcChannel, const char *url, uid_t uid, int status) |
virtual void | onRemoteSubscribeFallbackToAudioOnly (IChannel *rtcChannel, uid_t uid, bool isFallbackOrRecover) |
virtual void | onConnectionStateChanged (IChannel *rtcChannel, CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) |
|
inlinevirtual |
|
inlinevirtual |
报告 IChannel 的警告码。
rtcChannel | IChannel |
warn | 警告码,详见 WARN_CODE_TYPE |
msg | 警告信息 |
|
inlinevirtual |
报告 IChannel 的错误码。
rtcChannel | IChannel |
err | 错误码,详见 ERROR_CODE_TYPE |
msg | 错误信息 |
|
inlinevirtual |
加入频道回调。
该回调方法表示该客户端成功加入了指定的频道。
rtcChannel | IChannel |
uid | 用户 ID。如果 joinChannel 中指定了 uid ,则此处返回该 ID;否则使用 Agora 服务器自动分配的 ID。 |
elapsed | 从 joinChannel 开始到发生此事件过去的时间(毫秒)。 |
|
inlinevirtual |
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
rtcChannel | IChannel |
uid | 用户 ID。 |
elapsed | 从开始重连到重连成功的时间(毫秒)。 |
|
inlinevirtual |
离开频道回调。
App 调用 leaveChannel 方法时,SDK提示 App 离开频道成功。在该回调方法中,App 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。App 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。
|
inlinevirtual |
直播场景下用户角色已切换回调。
直播场景下,当用户切换角色时会触发此回调,即主播切换为观众时,或观众切换为主播时。
该回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。
rtcChannel | IChannel |
oldRole | 切换前的角色: CLIENT_ROLE_TYPE 。 |
newRole | 切换后的角色: CLIENT_ROLE_TYPE 。 |
|
inlinevirtual |
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
rtcChannel | IChannel |
uid | 新加入频道的远端用户/主播 ID。 |
elapsed | 从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。 |
|
inlinevirtual |
远端用户(通信场景)/主播(直播场景)离开当前频道回调。
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
rtcChannel | IChannel |
uid | 离线用户或主播的用户 ID。 |
reason | 离线原因: USER_OFFLINE_REASON_TYPE 。 |
|
inlinevirtual |
网络连接丢失回调。
SDK 在调用 joinChannel 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
与 onConnectionInterrupted 的区别是:
onConnectionInterrupted
回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。onConnectionLost
回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
rtcChannel | IChannel |
|
inlinevirtual |
Token 已过期回调。
在调用 joinChannel, 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。
该回调通知 App 需要生成新的 token,并需调用 renewToken 为 SDK 指定新的 Token。
rtcChannel | IChannel |
|
inlinevirtual |
Token 服务即将过期回调。
在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
rtcChannel | IChannel |
token | 即将服务失效的 Token。 |
|
inlinevirtual |
通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。
该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
rtcChannel | IChannel |
uid | 用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。 |
txQuality | 该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题,但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE 。 |
rxQuality | 该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE 。 |
|
inlinevirtual |
通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流统计信息, 针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播, 该回调每 2 秒会被触发多次。
rtcChannel | IChannel |
stats | 远端视频统计数据。详见: RemoteVideoStats 。 |
|
inlinevirtual |
通话中远端音频流的统计信息回调。用于取代 onAudioQuality 回调。
该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。
rtcChannel | IChannel |
stats | 接收到的远端音频统计数据,详细定义见: RemoteAudioStats 。 |
|
inlinevirtual |
远端音频流状态发生改变回调。
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
rtcChannel | IChannel |
uid | 发生音频状态改变的远端用户 ID。 |
state | 远端音频流状态。 详见 REMOTE_AUDIO_STATE 。 |
reason | 远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON 。 |
elapsed | 从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。 |
|
inlinevirtual |
监测到活跃用户回调。
如果用户开启了 enableAudioVolumeIndication 功能,则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的用户 ID。
rtcChannel | IChannel |
uid | 当前时间段声音最大的用户的用户 ID。如果返回的 uid 为 0,则默认为本地用户。 |
|
inlinevirtual |
本地或远端视频大小和旋转信息发生改变回调。
rtcChannel | IChannel |
uid | 图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0)。 |
width | 视频流的宽度(像素)。 |
height | 视频流的高度(像素)。 |
rotation | 旋转信息 [0,360)。 |
|
inlinevirtual |
远端视频状态发生改变回调。
rtcChannel | IChannel |
uid | 发生视频状态改变的远端用户 ID。 |
state | 远端视频流状态。详见 REMOTE_VIDEO_STATE 。 |
reason | 远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON 。 |
elapsed | 从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。 |
|
inlinevirtual |
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
rtcChannel | IChannel |
uid | 发送消息的用户 ID。 |
streamId | Stream ID。 |
data | 接收到的数据。 |
length | 数据长度。 |
|
inlinevirtual |
接收对方数据流消息发生错误的回调。
该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
rtcChannel | IChannel |
uid | 发送消息的用户 ID。 |
streamId | Stream ID。 |
code | 错误码: ERROR_CODE_TYPE 。 |
missed | 丢失的消息数量。 |
cached | 数据流中断时,后面缓存的消息数量。 |
|
inlinevirtual |
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调, 并报告当前的转发状态以及相关的错误信息。
rtcChannel | IChannel |
state | 跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE 。 |
code | 跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR 。 |
|
inlinevirtual |
跨频道媒体流转发事件回调。
该回调报告跨频道媒体流转发过程中发生的事件。
rtcChannel | IChannel |
code | 跨频道媒体流转发事件码。详见 CHANNEL_MEDIA_RELAY_EVENT 。 |
|
inlinevirtual |
RTMP 推流状态发生改变回调。
该回调返回本地用户调用 addPublishStreamUrl 或 removePublishStreamUrl 方法的结果。 RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。 该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
rtcChannel | IChannel |
url | 推流状态发生改变的 URL 地址。 |
state | 当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE 。当推流状态为 RTMP_STREAM_PUBLISH_STATE_FAILURE (4) 时,你可以在 errorCode 参数中查看返回的错误信息。 |
errCode | 推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR 。 |
|
inlinevirtual |
旁路推流设置已被更新回调。
setLiveTranscoding 方法中的直播参数 LiveTranscoding
更新时,onTranscodingUpdated
回调会被触发并向主播报告更新信息。
setLiveTranscoding
方法设置转码参数 LiveTranscoding
时,不会触发此回调。rtcChannel | IChannel |
|
inlinevirtual |
输入在线媒体流状态回调。
rtcChannel | IChannel |
url | 导入进直播的在线媒体流的地址。 |
uid | 用户 ID。 |
status | 输入的在线媒体流状态: INJECT_STREAM_STATUS 。 |
|
inlinevirtual |
远端订阅流已回退为音频流回调。
如果你调用了 setRemoteSubscribeFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
rtcChannel | IChannel |
uid | 远端用户 ID。 |
isFallbackOrRecover |
|
|
inlinevirtual |
网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。
rtcChannel | IChannel |
state | 详见: CONNECTION_STATE_TYPE 。 |
reason | 详见: CONNECTION_CHANGED_REASON_TYPE 。 |