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