音视频通讯SDK API参考手册  Windows 1.6.0
av_room.h
1 #ifndef AV_ROOM_H_
2 #define AV_ROOM_H_
3 
4 #include "av_common.h"
5 #include "av_endpoint.h"
6 
7 namespace tencent {
8 namespace av {
9 
10 //权限位
11 #define AUTH_BITS_DEFUALT 0xFFFFFFFFFFFFFFFF
12 #define AUTH_BITS_CREATE_ROOM 0x00000001
13 #define AUTH_BITS_JOIN_ROOM 0x00000002
14 #define AUTH_BITS_SEND_AUDIO 0x00000004
15 #define AUTH_BITS_RECV_AUDIO 0x00000008
16 #define AUTH_BITS_SEND_VIDEO 0x00000010
17 #define AUTH_BITS_RECV_VIDEO 0x00000020
18 #define AUTH_BITS_SEND_SUB 0x00000040
19 #define AUTH_BITS_RECV_SUB 0x00000080
20 
21 
29 class AV_EXPORT AVRoom {
30  public:
32  enum RoomType {
33  ROOM_TYPE_NONE = 0,
34  ROOM_TYPE_PAIR = 1,
35  ROOM_TYPE_MULTI = 2,
36  };
37 
39  enum Mode {
40  MODE_AUDIO = 0,
41  MODE_VIDEO = 1,
42  };
43 
44 
47  AUDIO_CATEGORY_VOICECHAT = 0,
48  AUDIO_CATEGORY_MEDIA_PLAY_AND_RECORD = 1,
49  AUDIO_CATEGORY_MEDIA_PLAYBACK = 2,
50  };
51 
54  EVENT_ID_NONE = 0,
55  EVENT_ID_ENDPOINT_ENTER = 1,
56  EVENT_ID_ENDPOINT_EXIT = 2,
57  EVENT_ID_ENDPOINT_HAS_CAMERA_VIDEO = 3,
58  EVENT_ID_ENDPOINT_NO_CAMERA_VIDEO = 4,
59  EVENT_ID_ENDPOINT_HAS_AUDIO = 5,
60  EVENT_ID_ENDPOINT_NO_AUDIO = 6,
61  EVENT_ID_ENDPOINT_HAS_SCREEN_VIDEO = 7,
62  EVENT_ID_ENDPOINT_NO_SCREEN_VIDEO = 8,
63  };
64 
66  struct Delegate {
67  virtual ~Delegate() {}
79  virtual void OnEnterRoomComplete(int32 ret_code) = 0;
80 
90  virtual void OnExitRoomComplete(int32 ret_code) = 0;
91 
102  virtual void OnEndpointsUpdateInfo(EndpointEventId eventid, std::vector<std::string> updatelist) = 0;
103 
112  virtual void OnPrivilegeDiffNotify(int32 privilege) = 0;
113  };
114 
116  struct EnterRoomParam {
118  };
119 
121  struct Info {
123  : room_type(ROOM_TYPE_NONE)
124  , room_id(0)
125  , relation_type(RELATION_TYPE_OPENSDK)
126  , relation_id(0)
127  , mode(MODE_AUDIO)
128  , auth_bits(AUTH_BITS_DEFUALT)
129  , audio_category(AUDIO_CATEGORY_VOICECHAT) {
130  }
131 
132  virtual ~Info() {}
133 
135  uint64 room_id;
137  uint32 relation_id;
138  std::string peer_identifier;
140  uint64 auth_bits;
141  std::string auth_buffer;
143  std::string
145  };
146 
148  virtual const Info* GetRoomInfo() = 0;
149 
155  virtual uint64 GetRoomId() = 0;
156 
162  virtual RoomType GetRoomType() = 0;
163 
169  virtual std::string GetQualityTips() = 0;
170 
175  virtual void SetNetType(NetStateType type) = 0;
176 
177 #ifdef WIN32
178 
202  virtual int32 RequestViewList(const std::vector<std::string> identifier_list, const std::vector<View> view_list, AVEndpoint::RequestViewListCompleteCallback complete_callback, void* custom_data) = 0;
203 
220  virtual int32 CancelAllView(AVEndpoint::CancelAllViewCompleteCallback complete_callback, void* custom_data) = 0;
221 #endif
222 
223  DISALLOW_EVIL_DESTRUCTIONS(AVRoom)
224 };
225 
226 } // namespace av
227 } // namespace tencent
228 
229 #endif // #ifndef AV_ROOM_H_
Definition: av_audio_ctrl.h:6
RelationType relation_type
关系类型,多人房间专用,第三方App固定填6。
Definition: av_room.h:136
std::string av_control_role
音视场景策略,多人房间专用。
Definition: av_room.h:144
NetStateType
网络连接类型。
Definition: av_common.h:223
uint64 room_id
房间Id。
Definition: av_room.h:135
RoomType
音视频房间类型。
Definition: av_room.h:32
RoomType room_type
房间类型,详情见RoomType的定义。
Definition: av_room.h:117
virtual ~Info()
Definition: av_room.h:132
uint64 auth_bits
音视频权限bitmap,多人房间专用。
Definition: av_room.h:140
uint32 relation_id
关系Id,多人房间专用。
Definition: av_room.h:137
房间委托的抽象基类,App需要实现其成员函数来得到房间异步操作的执行结果。
Definition: av_room.h:66
virtual ~Delegate()
Definition: av_room.h:67
void(* CancelAllViewCompleteCallback)(int32 result, void *custom_data)
CancelAllView()的回调函数。
Definition: av_endpoint.h:73
音视频开放SDK,第三方App专用。
Definition: av_common.h:56
进入房间所需参数的基类,SDK内部会根据room_type的取值来判断对象的实际类型。
Definition: av_room.h:116
std::string peer_identifier
对端Id,双人房间专用。
Definition: av_room.h:138
void(* RequestViewListCompleteCallback)(std::vector< std::string > identifier_list, std::vector< View > view_list, int32 result, void *custom_data)
RequestViewList()的回调函数。
Definition: av_endpoint.h:59
音视频房间封装类的基类。
Definition: av_room.h:29
std::string auth_buffer
Definition: av_room.h:141
Mode
音视频通话模式。
Definition: av_room.h:39
Info()
Definition: av_room.h:122
EndpointEventId
成员事件id
Definition: av_room.h:53
AudioCategory
音视场景策略。
Definition: av_room.h:46
Mode mode
音视频通话模式,详情见AVMode的定义。
Definition: av_room.h:139
RelationType
关系类型。
Definition: av_common.h:50
AudioCategory audio_category
音视频权限加密串,多人房间专用。
Definition: av_room.h:142
房间配置信息。
Definition: av_room.h:121
RoomType room_type
房间类型,详情见RoomType的定义。
Definition: av_room.h:134