Agora Java API Reference for Android
NGIAgoraRtmpConnection.h
1 //
2 // Agora RTMP connection
3 //
4 // Created by Haonong Yu in 2020-02.
5 // Copyright (c) 2020 Agora.io. All rights reserved.
6 //
7 
8 #pragma once // NOLINT(build/header_guard)
9 
10 #include "AgoraRefPtr.h"
11 #include "NGIAgoraRtmpUser.h"
12 
13 namespace agora {
14 namespace rtmp {
15 
19 enum RTMP_CONNECTION_ERROR {
23  RTMP_CONNECTION_ERR_OK = 0,
24 
28  RTMP_CONNECTION_ERR_FAILED = 1,
29 
33  RTMP_CONNECTION_ERR_INVALID_URL = 2,
34 };
35 
39 enum RTMP_CONNECTION_STATE {
51  STATE_DISCONNECTED = 1,
52 
64  STATE_CONNECTING = 2,
65 
76  STATE_CONNECTED = 3,
77 
86  STATE_RECONNECTING = 4,
87 
95  STATE_FAILED = 5
96 };
97 
107  const char* publishUrl;
108 
110 };
111 
119  RTMP_CONNECTION_STATE state;
120 
121  RtmpConnectionInfo() : state(STATE_DISCONNECTED) {}
122 };
123 
124 
129  public:
135  virtual void onConnected(const RtmpConnectionInfo& connectionInfo) = 0;
136 
142  virtual void onDisconnected(const RtmpConnectionInfo& connectionInfo) = 0;
143 
149  virtual void onReconnecting(const RtmpConnectionInfo& connectionInfo) = 0;
150 
156  virtual void onConnectionLost(const RtmpConnectionInfo& connectionInfo) = 0;
157 
164  virtual void onConnectionFailure(const RtmpConnectionInfo& connectionInfo,
165  RTMP_CONNECTION_ERROR errCode) = 0;
166 
167 
168  virtual ~IRtmpConnectionObserver() {}
169 };
170 
181 class IRtmpConnection : public RefCountInterface {
182  protected:
183  ~IRtmpConnection() = default;
184 
185  public:
205  virtual int connect(const char* url) = 0;
206 
214  virtual int disconnect() = 0;
215 
224 
232  virtual IRtmpUser* getUser() = 0;
233 
242  virtual int registerObserver(IRtmpConnectionObserver* observer) = 0;
243 
253  virtual int unregisterObserver(IRtmpConnectionObserver* observer) = 0;
254 };
255 
256 } // namespace rtmp
257 } // namespace agora
agora::rtmp::IRtmpConnection
Definition: NGIAgoraRtmpConnection.h:181
agora::rtmp::RtmpConnectionInfo
Definition: NGIAgoraRtmpConnection.h:115
agora::rtmp::RtmpConnectionConfiguration
Definition: NGIAgoraRtmpConnection.h:101
agora::rtmp::IRtmpConnectionObserver
Definition: NGIAgoraRtmpConnection.h:128
agora::rtmp::IRtmpConnection::getUser
virtual IRtmpUser * getUser()=0
agora::rtmp::IRtmpUser
Definition: NGIAgoraRtmpUser.h:96
agora::rtmp::RtmpConnectionConfiguration::publishUrl
const char * publishUrl
Definition: NGIAgoraRtmpConnection.h:107
agora::rtmp::IRtmpConnection::unregisterObserver
virtual int unregisterObserver(IRtmpConnectionObserver *observer)=0
agora::rtmp::IRtmpConnectionObserver::onDisconnected
virtual void onDisconnected(const RtmpConnectionInfo &connectionInfo)=0
agora::rtmp::RtmpConnectionInfo::state
RTMP_CONNECTION_STATE state
Definition: NGIAgoraRtmpConnection.h:119
agora::rtmp::IRtmpConnectionObserver::onConnected
virtual void onConnected(const RtmpConnectionInfo &connectionInfo)=0
agora::rtmp::IRtmpConnectionObserver::onConnectionLost
virtual void onConnectionLost(const RtmpConnectionInfo &connectionInfo)=0
agora::rtmp::IRtmpConnectionObserver::onReconnecting
virtual void onReconnecting(const RtmpConnectionInfo &connectionInfo)=0
agora::rtmp::IRtmpConnection::registerObserver
virtual int registerObserver(IRtmpConnectionObserver *observer)=0
agora::rtmp::IRtmpConnectionObserver::onConnectionFailure
virtual void onConnectionFailure(const RtmpConnectionInfo &connectionInfo, RTMP_CONNECTION_ERROR errCode)=0
agora::rtmp::IRtmpConnection::connect
virtual int connect(const char *url)=0
agora::rtmp::IRtmpConnection::getConnectionInfo
virtual RtmpConnectionInfo getConnectionInfo()=0
agora::rtmp::IRtmpConnection::disconnect
virtual int disconnect()=0