io.agora.rtc.AgoraRtcConn类 参考
AgoraRtcConn
类,用于管理 SDK 与 RTC 频道之间的连接。
连接完成之后,你可以通过 AgoraLocalUser
对象在 RTC 频道中发送和接收媒体流。
连接频道是异步操作,你可以通过 IRtcConnObserver
对象监听连接状态变化和事件。 AgoraRtcConn
还可以监控频道中的远端用户是否加入或离开频道。
构造及析构函数说明
AgoraRtcConn()
io.agora.rtc.AgoraRtcConn.AgoraRtcConn | ( | long | cptr | ) |
构造函数。
成员函数说明
connect()
native int io.agora.rtc.AgoraRtcConn.connect | ( | String | token, |
String | chan_id, | ||
String | user_id ) |
连接 RTC 频道。
方法成功时,连接状态由 CONNECTION_STATE_DISCONNECTED(1)
变更为 CONNECTION_STATE_CONNECTING(2)
。
根据连接是否成功,连接状态会变更为 CONNECTION_STATE_CONNECTED(3)
或 CONNECTION_STATE_FAILED(5)
。SDK 会触发 onConnected
或 onDisconnected
提醒连接状态变更。
参数
参数名 | 描述 |
---|---|
token | RTC token。 |
chan_id | 频道名。必须为字符串且长度不超过 64 字节。支持的字符类型包括:
|
user_id | 本地用户 ID。长度不超过 64 字节。如果你不设置用户 ID 或设为 null , SDK 在 onConnected 回调中自动返回一个 user ID。你必须自行记录并管理此 ID。根据你在 initialize 方法中选择的用户 ID 类型,该参数支持的字符集也不同:
|
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
createDataStream()
native int io.agora.rtc.AgoraRtcConn.createDataStream | ( | Out | stream_id, |
int | reliable, | ||
int | ordered ) |
创建数据流。
每个用户在每个频道中最多只能创建 5 个数据流。
- 声网不支持你将
reliable
设为1
且ordered
设为0
。 - 当需要数据包立刻到达接收端时,不能将
ordered
参数设置为0
。
参数
参数名 | 描述 |
---|---|
stream_id | 输出参数,数据流 ID。 |
reliable | 该数据流是否可靠:
|
ordered | 该数据流是否有序:
|
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
destroy()
void io.agora.rtc.AgoraRtcConn.destroy | ( | ) |
析构函数。
destroyConnInfo()
native void io.agora.rtc.AgoraRtcConn.destroyConnInfo | ( | RtcConnInfo | info | ) |
destroyTransportStats()
native void io.agora.rtc.AgoraRtcConn.destroyTransportStats | ( | RtcStats | stats | ) |
destroyUserInfo()
native void io.agora.rtc.AgoraRtcConn.destroyUserInfo | ( | UserInfo | info | ) |
disconnect()
native int io.agora.rtc.AgoraRtcConn.disconnect | ( | ) |
与 RTC 频道断开连接。
SDK 与频道断开连接时,连接状态变更为 CONNECTION_STATE_DISCONNECTED(1)
。你还可以通过 onDisconnected 回调得知。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
enableEncryption()
native int io.agora.rtc.AgoraRtcConn.enableEncryption | ( | int | enabled, |
EncryptionConfig | config ) |
开启或关闭内置加密。
在安全要求较高的场景下,声网建议你在加入频道前,调用本方法开启内置加密。
参数
参数名 | 描述 |
---|---|
enabled | 是否开启内置加密:
|
config | 配置内置加密模式和密钥。详见 EncryptionConfig。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
getAgoraParameter()
native AgoraParameter io.agora.rtc.AgoraRtcConn.getAgoraParameter | ( | ) |
获取某个 Connection 中的 AgoraParameter 对象。
通过该方法获取的 AgoraParameter
对象,设置仅对当前 Connection 有效。如需进行全局设置,改用 AgoraService.getAgoraParameter 方法。
返回值
AgoraParameter
对象:方法调用成功。null
:方法调用失败。
getConnId()
getConnInfo()
getLocalUser()
native AgoraLocalUser io.agora.rtc.AgoraRtcConn.getLocalUser | ( | ) |
获取 AgoraLocalUser 对象。
返回值
- AgoraLocalUser 对象:方法调用成功。
- 空指针:方法调用失败。
getTransportStats()
getUserInfo()
registerNetworkObserver()
native int io.agora.rtc.AgoraRtcConn.registerNetworkObserver | ( | INetworkObserver | observer | ) |
注册网络状态 observer。
参数
参数名 | 描述 |
---|---|
observer | INetworkObserver 对象。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
registerObserver()
native int io.agora.rtc.AgoraRtcConn.registerObserver | ( | IRtcConnObserver | observer | ) |
注册 RTC 连接 observer。你必须先创建 IRtcConnection
对象。
参数
参数名 | 描述 |
---|---|
observer | IRtcConnObserver 对象。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
renewToken()
native int io.agora.rtc.AgoraRtcConn.renewToken | ( | String | token | ) |
更新 Token。
Token 会在一定时间后过期。 当收到 onTokenPrivilegeWillExpire 回调时,你必须从服务端生成一个新的 token,并使用该方法更新 Token。否则,SDK 会与频道断开连接。
参数
参数名 | 描述 |
---|---|
token | 新 Token。 |
sendCustomReportMessage()
sendStreamMessage()
native int io.agora.rtc.AgoraRtcConn.sendStreamMessage | ( | int | stream_id, |
String | data, | ||
int | length ) |
发送数据流消息。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:
- 频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。
- 每个客户端每秒最多能发送 6 KB 数据。
- 频道内每人最多能同时有 5 个数据通道。
成功调用该方法后,远端会触发 onStreamMessage 回调,远端用户可以在该回调中获取接收到的流消息。
- 请确保在调用该方法前,已调用 createDataStream 创建了数据通道。
- 直播场景下,该方法仅适用于主播用户。
参数
参数名 | 描述 |
---|---|
stream_id | 数据流 ID。可以通过 createDataStream 获取。 |
data | 待发送的数据。 |
length | 数据长度。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
startLastmileProbeTest()
native int io.agora.rtc.AgoraRtcConn.startLastmileProbeTest | ( | LastmileProbeConfig | config | ) |
开始通话前网络质量探测。
开始通话前网络质量探测,向用户反馈上下行网络的带宽、丢包、网络抖动和往返时延数据。
启用该方法后,SDK 会依次返回如下 2 个回调:
- onLastmileQuality: 视网络情况约 2 秒内返回。该回调通过打分反馈上下行网络质量,更贴近用户的主观感受。
- onLastmileProbeResult: 视网络情况约 30 秒内返回。该回调通过具体数据反馈上下行网络质量,更加客观。
- 调用该方法后,在收到 onLastmileQuality 和 onLastmileProbeResult 回调之前请不要调用其他方法,否则可能会由于 API 操作过于频繁导致此方法无法执行。
- 在直播场景中,如果本地用户为主播,请勿加入频道后调用该方法。
参数
参数名 | 描述 |
---|---|
config | Last mile 网络探测配置,详见 See LastmileProbeConfig。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
stopLastmileProbeTest()
native int io.agora.rtc.AgoraRtcConn.stopLastmileProbeTest | ( | ) |
停止通话前网络质量探测。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
unregisterNetworkObserver()
native int io.agora.rtc.AgoraRtcConn.unregisterNetworkObserver | ( | ) |
释放 INetworkObserver
对象。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
unregisterObserver()
native int io.agora.rtc.AgoraRtcConn.unregisterObserver | ( | ) |
释放 IRtcConnObserver
对象。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。