agora::rtc::IRtmpConnection类 参考
- C++
更新时间不可用
继承自 agora::RefCountInterface.
详细描述
IRtmpConnection 类,用于管理 SDK 与 CDN 之间的连接。
连接完成之后,你可以通过 IRtmpLocalUser 对象在 CDN 中推流。
连接 CDN 是异步操作,你可以通过 IRtmpConnectionObserver 对象监听连接状态变化和事件。
构造及析构函数说明
~IRtmpConnection()
agora::rtc::IRtmpConnection::~IRtmpConnection()成员函数说明
connect()
virtual int agora::rtc::IRtmpConnection::connect(const char * url, aosl_ref_t ares = AOSL_REF_INVALID)连接 CDN。
成功调用该方法后,连接状态由 STATE_DISCONNECTED(1) 变更为 STATE_CONNECTING(2)。
根据连接是否成功,连接状态会有如下变化:
- 连接成功:连接状态变更为
STATE_CONNECTED(3),SDK 会触发 onConnected 回调。 - 连接失败:连接状态变更为
STATE_FAILED(5),SDK 会触发 onConnectionFailure 回调。
| 参数名 | 描述 |
|---|---|
url | CDN 推流地址。格式为 RTMP。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。
- -2 (
ERR_INVALID_ARGUMENT): 参数无效。 - -8(
ERR_INVALID_STATE): 当前连接状态不是STATE_DISCONNECTED(1)。
- -2 (
disconnect()
virtual int agora::rtc::IRtmpConnection::disconnect(aosl_ref_t ares = AOSL_REF_INVALID)与 CDN 断开连接。
成功调用该方法后,连接状态变更为 STATE_DISCONNECTED(1),同时 SDK 会触发 onDisconnected 回调。
| 参数名 | 描述 |
|---|---|
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
getConnectionInfo()
virtual RtmpConnectionInfo agora::rtc::IRtmpConnection::getConnectionInfo()获取连接信息。
返回值
- RtmpConnectionInfo 对象:方法调用成功。
- 空指针:方法调用失败。
getRtmpLocalUser()
virtual IRtmpLocalUser* agora::rtc::IRtmpConnection::getRtmpLocalUser()获取本地用户对象的指针。每个连接仅对应一个本地用户。
返回值
- IRtmpLocalUser 对象:方法调用成功。
- 空指针:方法调用失败。
registerObserver()
virtual int agora::rtc::IRtmpConnection::registerObserver(IRtmpConnectionObserver * observer, void(*)(IRtmpConnectionObserver *) safeDeleter = NULL, aosl_ref_t ares = AOSL_REF_INVALID)注册 CDN 连接 observer。
你必须先创建 IRtmpConnectionObserver 对象。
| 参数名 | 描述 |
|---|---|
observer | |
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
unregisterObserver()
virtual int agora::rtc::IRtmpConnection::unregisterObserver(IRtmpConnectionObserver * observer)销毁 CDN 连接 observer。
| 参数名 | 描述 |
|---|---|
observer |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。