RTCRoom.h
6.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
//
// RTCRoom.h
// TXLiteAVDemo
//
// Created by lijie on 2017/10/30.
// Copyright © 2017年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "RoomDef.h"
/**
事件回调: 房间pusher列表下发、pusher进入、pusher退出、房间关闭、Debug事件信息、出错说明、接收群文本消息
*/
@protocol RTCRoomListener <NSObject>
- (void)onGetPusherList:(NSArray<PusherInfo *> *)pusherInfoArray;
- (void)onPusherJoin:(PusherInfo *)pusherInfo;
- (void)onPusherQuit:(PusherInfo *)pusherInfo;
- (void)onRoomClose:(NSString *)roomID;
- (void)onDebugMsg:(NSString *)msg;
- (void)onError:(int)errCode errMsg:(NSString *)errMsg;
@optional
- (void)onRecvRoomTextMsg:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar textMsg:(NSString *)textMsg;
- (void)onRecvCustomTextMsg:(NSString *)groupID userID:(NSString *)userID cmd:(NSString *)cmd userAvatar:(NSString *)userAvatar textMsg:(NSString *)textMsg;
@end
/**
初始化IM等功能的回调
@note: 初始化失败就不能创建和加入房间
*/
typedef void (^ILoginCompletionHandler)(int errCode, NSString *errMsg);
/**
从RoomService后台登出回调
*/
typedef void (^ILogoutCompletionHandler)(int errCode, NSString *errMsg);
/**
创建房间的回调
*/
typedef void (^ICreateRoomCompletionHandler)(int errCode, NSString *errMsg);
/**
进入房间的回调
*/
typedef void (^IEnterRoomCompletionHandler)(int errCode, NSString *errMsg);
/**
离开房间的回调
*/
typedef void (^IExitRoomCompletionHandler)(int errCode, NSString *errMsg);
/**
获取房间列表的回调
@param roomInfoArray 请求的房间列表信息
*/
typedef void (^IGetRoomListCompletionHandler)(int errCode, NSString *errMsg, NSArray<RoomInfo *> *roomInfoArray);
/**
播放开始的回调
*/
typedef void (^IPlayBegin)();
/**
播放过程中发生错误时的回调
*/
typedef void (^IPlayError)(int errCode, NSString *errMsg);
@interface RTCRoom : NSObject
@property (nonatomic, weak) id<RTCRoomListener> delegate;
/**
初始化IM等功能,客户需要注册云通信账号,使用独立模式,IM签名信息及用户信息,客户在登录后台计算并通过登录协议返回
@param serverDomain 服务器域名地址
@param loginInfo 初始化信息
@param completion 初始化完成的回调
*/
- (void)login:(NSString*)serverDomain loginInfo:(LoginInfo *)loginInfo withCompletion:(ILoginCompletionHandler)completion;
/**
从Room后台登出
@param completion 登出完成回调
*/
-(void)logout:(ILogoutCompletionHandler)completion;
/**
创建房间
@param roomID 房间ID,可以传空
@param roomInfo 房间信息
@param completion 房间创建完成的回调,里面会携带roomID
*/
- (void)createRoom:(NSString *)roomID roomInfo:(NSString *)roomInfo withCompletion:(ICreateRoomCompletionHandler)completion;
/**
进入房间
@param roomID 房间号
@param completion 进入房间完成的回调
*/
- (void)enterRoom:(NSString *)roomID withCompletion:(IEnterRoomCompletionHandler)completion;
/**
离开房间
*/
- (void)exitRoom:(IExitRoomCompletionHandler)completion;
/**
获取房间列表,分页获取
@param index 获取的房间开始索引,从0开始计算
@param cnt 获取的房间个数
@param completion 拉取房间列表完成的回调,回调里返回获取的房间列表信息,如果个数小于cnt则表示已经拉取所有的房间列表
*/
- (void)getRoomList:(int)index cnt:(int)cnt withCompletion:(IGetRoomListCompletionHandler)completion;
/**
发送群文本消息
*/
- (void)sendRoomTextMsg:(NSString *)textMsg;
- (void)sendRoomCusMsg:(NSString *)textMsg cmd: (NSString *)cmd;
/**
预览本地画面
@param view 本地预览画面展示的区域
*/
- (void)startLocalPreview:(UIView *)view;
/**
停止本地预览
*/
- (void)stopLocalPreview;
/**
播放指定userID的视频
@param view 播放视频所在的区域
@userID 要播放的成员ID
@playBegin 播放开始的回调
@playError 播放过程中发生错误时的回调
*/
- (void)addRemoteView:(UIView *)view withUserID:(NSString *)userID playBegin:(IPlayBegin)playBegin playError:(IPlayError)playError;
/**
停止播放指定userID的视频
@userID 停止播放的成员ID
@note 收到onPusherQuit事件后,内部会调用此函数停止播放该成员的视频,用户只需在UI层上层将对应的view销毁或者隐藏,改变显示布局
*/
- (void)deleteRemoteView:(NSString *)userID;
/**
切换前后摄像头
*/
- (void)switchCamera;
/**
设置静音推流
*/
- (void)setMute:(BOOL)isMute;
/**
设置声音是否为高清晰度
@param isHD YES: 48K采样,NO: 16K采样
*/
- (void)setHDAudio:(BOOL)isHD;
/**
设置视频的码率区间
@param minBitrate 最低码率
@param maxBitrate 最高码率
*/
- (void)setBitrateRange:(int)minBitrate max:(int)maxBitrate;
/**
从前台切到后台后会发送静音数据,同时发送默认画面
@param pauseImage 要发送的默认画面图片
*/
- (void)switchToBackground:(UIImage *)pauseImage;
/**
从后台回到前台的时候,调用此函数恢复推送camera采集的数据
*/
- (void)switchToForeground;
/**
在渲染view上显示播放或推流状态统计及事件消息浮层
*/
- (void)showVideoDebugLog:(BOOL)isShow;
/**
设置美颜 和 美白 效果级别
@praram beautyStyle 取值为TX_Enum_Type_BeautyStyle
@praram beautyLevel 美颜级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
@praram whitenessLevel 美白级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
@praram ruddinessLevel 红润级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
*/
- (void)setBeautyStyle:(int)beautyStyle beautyLevel:(float)beautyLevel whitenessLevel:(float)whitenessLevel ruddinessLevel:(float)ruddinessLevel;
-(void)resetRoom;
/**
切换到音频/视频模式
@param isVoice 是否是音频模式
*/
- (void)switch2voice:(Boolean)isVoice;
/// 打开闪光灯
- (void)openFlash:(Boolean)open;
- (void)onPusherChanged;
@end