io.agora.rtc.IRtcConnObserver接口 参考

  • Java

更新时间不可用

IRtcConnObserver 接口。

成员函数说明

onChangeRoleFailure()

void io.agora.rtc.IRtcConnObserver.onChangeRoleFailure(AgoraRtcConn agora_rtc_conn)

本地用户角色切换失败时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

onChangeRoleSuccess()

void io.agora.rtc.IRtcConnObserver.onChangeRoleSuccess(AgoraRtcConn agora_rtc_conn, int old_role, int new_role)

本地用户角色变更时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

old_role

本地用户变更前的角色:

  • 1:主播。主播可以同时发送和接收媒体流。
  • 2:观众。观众只能接收媒体流。
new_role

本地用户变更后的角色:

  • 1:主播。主播可以同时发送和接收媒体流。
  • 2:观众。观众只能接收媒体流。
表格内容超出当前宽度,可横向滚动查看更多列。

onConnected()

void io.agora.rtc.IRtcConnObserver.onConnected(AgoraRtcConn agora_rtc_conn, RtcConnInfo conn_info, int reason)

SDK 与频道的连接状态变更为 CONNECTION_STATE_CONNECTED(3) 时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

conn_info

连接信息。

reason

连接状态变更原因:

  • 0:建立网络连接中。
  • 1:成功加入频道。
  • 2:网络连接中断。
  • 3:网络连接被服务器禁止。
  • 4:无法加入频道超过 20 分钟,停止连接。
  • 5:离开频道。
  • 6:不是有效的 APP ID,连接失败。
  • 7:不是有效的频道名,连接失败。
  • 8:生成的 Token 无效,连接失败。
  • 9:生成的 Token 过期,连接失败。
  • 10:此用户被服务器禁止。
  • 11:由于设置了代理服务器,SDK 尝试重连。
  • 12:更新 Token 引起网络连接状态改变。
  • 13:客户端 IP 地址变更,可能是由于网络类型,或网络运营商的 IP 或端口发生改变引起。
  • 14:SDK 和服务器连接保活超时,进入自动重连状态。
  • 15:重新加入频道成功。
  • 16:SDK 和服务器失去连接。
  • 17:连接状态变化由回声测试引起。
  • 18:用户更改了本地 IP 地址。
表格内容超出当前宽度,可横向滚动查看更多列。

onConnecting()

void io.agora.rtc.IRtcConnObserver.onConnecting(AgoraRtcConn agora_rtc_conn, RtcConnInfo conn_info, int reason)

SDK 与频道的连接状态变更为 CONNECTION_STATE_CONNECTING(2) 时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

conn_info

连接信息。

reason

连接状态变更原因。

表格内容超出当前宽度,可横向滚动查看更多列。

onConnectionFailure()

void io.agora.rtc.IRtcConnObserver.onConnectionFailure(AgoraRtcConn agora_rtc_conn, RtcConnInfo conn_info, int reason)

SDK 与频道的连接状态变更为 CONNECTION_STATE_FAILED(5) 时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

conn_info

连接信息。

reason

连接状态变更原因。

表格内容超出当前宽度,可横向滚动查看更多列。

onConnectionLost()

void io.agora.rtc.IRtcConnObserver.onConnectionLost(AgoraRtcConn agora_rtc_conn, RtcConnInfo conn_info)

SDK 失去与频道的连接时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

conn_info

连接信息。

表格内容超出当前宽度,可横向滚动查看更多列。

onDisconnected()

void io.agora.rtc.IRtcConnObserver.onDisconnected(AgoraRtcConn agora_rtc_conn, RtcConnInfo conn_info, int reason)

SDK 与频道的连接状态变更为 CONNECTION_STATE_DISCONNECTED(1) 时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

conn_info

连接信息。

reason

连接状态变更原因。

表格内容超出当前宽度,可横向滚动查看更多列。

onEncryptionError()

void io.agora.rtc.IRtcConnObserver.onEncryptionError(AgoraRtcConn agora_rtc_conn, int error_type)

加密出错回调。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

error_type

加密错误类型。

表格内容超出当前宽度,可横向滚动查看更多列。

onError()

void io.agora.rtc.IRtcConnObserver.onError(AgoraRtcConn agora_rtc_conn, int error, String msg)

发生错误回调。

该回调方法表示 SDK 运行时出现了网络或媒体相关的错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

error

错误码。

msg

错误描述。

表格内容超出当前宽度,可横向滚动查看更多列。

onLastmileProbeResult()

void io.agora.rtc.IRtcConnObserver.onLastmileProbeResult(AgoraRtcConn agora_rtc_conn, LastmileProbeResult result)

通话前网络上下行 Last mile 质量探测报告回调。

调用 startLastmileProbeTest 方法 30 秒之后触发该回调。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

result

上下行 Last mile 质量探测结果: LastmileProbeResult。

表格内容超出当前宽度,可横向滚动查看更多列。

onLastmileQuality()

void io.agora.rtc.IRtcConnObserver.onLastmileQuality(AgoraRtcConn agora_rtc_conn, int quality)

报告 last-mile 网络质量。

SDK 在调用 startLastmileProbeTest 两秒后触发该回调。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

quality

Last-mile 网络质量。

  • 0:质量未知。
  • 1:质量极好。
  • 2:用户主观感觉和极好差不多,但码率可能略低于极好。
  • 3:用户主观感受有瑕疵但不影响沟通。
  • 4:勉强能沟通但不顺畅。
  • 5:网络质量非常差,基本不能沟通。
  • 6:网络连接断开,完全无法沟通。
表格内容超出当前宽度,可横向滚动查看更多列。

onNetworkTypeChanged()

void io.agora.rtc.IRtcConnObserver.onNetworkTypeChanged(AgoraRtcConn agora_rtc_conn, int type)

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

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

type

当前网络连接类型:

  • -1:网络连接类型未知。
  • 0:网络连接已断开。
  • 1:网络类型为 LAN。
  • 2:网络类型为 Wi-Fi(包含热点)。
  • 3:网络类型为 2G 移动网络。
  • 4:网络类型为 3G 移动网络。
  • 5:网络类型为 4G 移动网络。
表格内容超出当前宽度,可横向滚动查看更多列。

onReconnecting()

void io.agora.rtc.IRtcConnObserver.onReconnecting(AgoraRtcConn agora_rtc_conn, RtcConnInfo conn_info, int reason)

SDK 与频道的连接状态变更为 CONNECTION_STATE_RECONNECTING(4) 时触发。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

conn_info

连接信息。

reason

连接状态变更原因。

表格内容超出当前宽度,可横向滚动查看更多列。

onStreamMessageError()

void io.agora.rtc.IRtcConnObserver.onStreamMessageError(AgoraRtcConn agora_rtc_conn, String user_id, int stream_id, int code, int missed, int cached)

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

参数
参数名描述
agora_rtc_conn

RTC 连接对象。

user_id

发送消息的用户 ID。

stream_id

接收到的消息的 Stream ID。

code

发生错误的错误码。

missed

丢失的消息数量。

cached

数据流中断时,后面缓存的消息数量。

表格内容超出当前宽度,可横向滚动查看更多列。

onTokenPrivilegeDidExpire()

void io.agora.rtc.IRtcConnObserver.onTokenPrivilegeDidExpire(AgoraRtcConn agora_rtc_conn)

Token 已过期时触发。 当收到该回调时,你需要重新在服务端生成新的 Token,然后重新连接频道。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

onTokenPrivilegeWillExpire()

void io.agora.rtc.IRtcConnObserver.onTokenPrivilegeWillExpire(AgoraRtcConn agora_rtc_conn, String token)

Token 将在 30s 内过期时触发。

在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 app 更新 Token。 当收到该回调时,你需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

token

将在30 秒内过期的 Token。

表格内容超出当前宽度,可横向滚动查看更多列。

onTransportStats()

void io.agora.rtc.IRtcConnObserver.onTransportStats(AgoraRtcConn agora_rtc_conn, RtcStats stats)

报告连接的传输统计信息。

当连接状态为 CONNECTION_STATE_CONNECTED(3) 时,SDK 每两秒触发一次回调。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

stats

连接统计信息。

表格内容超出当前宽度,可横向滚动查看更多列。

onUploadLogResult()

void io.agora.rtc.IRtcConnObserver.onUploadLogResult(AgoraRtcConn agora_rtc_conn, String request_id, int success, int reason)

onUserJoined()

void io.agora.rtc.IRtcConnObserver.onUserJoined(AgoraRtcConn agora_rtc_conn, String user_id)

远端用户加入频道时触发。

你可以在该回调中获取远端用户 ID。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

user_id

加入频道的远端用户的 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserLeft()

void io.agora.rtc.IRtcConnObserver.onUserLeft(AgoraRtcConn agora_rtc_conn, String user_id, int reason)

远端用户离开频道时触发。

你可以通过 reason 参数获取该用户离开频道的原因。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

user_id

离开频道的远端用户 ID。

reason

离开频道原因。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserNetworkQuality()

void io.agora.rtc.IRtcConnObserver.onUserNetworkQuality(AgoraRtcConn agora_rtc_conn, String user_id, int tx_quality, int rx_quality)

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

该回调每 2 秒触发一次,报告频道内每个用户(包括本地用户)的上下行网络状态。

参数
参数名描述
agora_rtc_conn

一个 AgoraRtcConn 对象。

user_id

用户 ID。如该参数为空,表示该回调报告的是本地用户的网络质量。

tx_quality

该用户的上行网络质量。

rx_quality

该用户的下行网络质量。

表格内容超出当前宽度,可横向滚动查看更多列。

该接口的文档由以下文件生成:

  • IRtcConnObserver.java

这个页面有帮助吗?