12 #import <Foundation/Foundation.h> 13 #import <AVFoundation/AVFoundation.h> 14 #import <UIKit/UIKit.h> 15 #import "CCEncodeConfig.h" 18 #define PUBLISHTIMEOUT 40.0 20 typedef void(^CCNetDomainBlcok)(BOOL result,
float time ,NSString *domain);
29 CCVideoChangeByInterface,
41 typedef NS_ENUM(NSInteger,CCBlaskStatus) {
42 CCBlaskStatus_Init = 1000,
44 CCBlaskStatus_isLoading,
49 typedef NS_ENUM(NSInteger,CCRecordType) {
63 typedef void(^CCComletionBlock)(BOOL result, NSError *error,
id info);
65 @protocol CCStreamerBasicDelegate <NSObject>
70 - (void)onServerDisconnected;
75 - (void)onStreamAdded:(
CCStream*)stream;
80 - (void)onStreamRemoved:(
CCStream*)stream;
91 - (void)onStreamError:(NSError *)error forStream:(
CCStream *)stream;
97 - (void)onMessageReceivedFrom:(NSString*)senderId message:(NSString*)message;
107 - (void)onSocketConnected:(NSString *)nsp;
112 - (void)onsocketReconnectiong;
116 - (void)onconnectionClosed;
124 - (void)onSocketReceive:(NSString *)event value:(
id)object;
129 - (void)onSocketReconnected:(NSString *)nsp;
136 @protocol CCStreamerSocketMethod <NSObject>
143 - (void)send:(NSString *)name;
151 - (void)send:(NSString *)name str:(NSString *)str;
158 - (void)send:(NSString *)name par:(NSDictionary *)par;
163 - (void)addObserver:(
id<CCStreamerBasicDelegate>)observer;
168 - (void)removeObserver:(
id<CCStreamerBasicDelegate>)observer;
180 @property (strong, nonatomic, readonly) NSString *
roomID;
185 @property (strong, nonatomic, readonly) NSString *
accountID;
190 @property (strong, nonatomic, readonly) NSString *
userID;
201 @property (strong, nonatomic) NSString *userVersion;
202 #pragma mark - observer 207 - (void)addObserver:(
id<CCStreamerBasicDelegate>)observer;
212 - (void)removeObserver:(
id<CCStreamerBasicDelegate>)observer;
222 - (void)onStreamStatsListener:(CCComletionBlock)completion;
224 #pragma mark - 配置socket重连参数 234 - (BOOL)configReconnectionAttempts:(NSInteger)count reconnectionDelay:(
float)delay reconnectionDelayMax:(
float)delayMax;
243 - (BOOL)setCameraType:(AVCaptureDevicePosition)pos;
253 - (BOOL)setServerDomain:(NSString *)domain area:(NSString *)area;
269 - (void)startPreview:(CCComletionBlock)completion;
276 - (BOOL)stopPreview:(CCComletionBlock)completion;
287 - (BOOL)joinWithAccountID:(NSString *)accountID sessionID:(NSString *)sessionID config:(
CCEncodeConfig *)config areaCode:(NSString *)areaCode events:(NSArray *)event completion:(CCComletionBlock)completion;
298 - (BOOL)loginWithAccountID:(NSString *)accountID sessionID:(NSString *)sessionID areaCode:(NSString *)areaCode completion:(CCComletionBlock)completion;
306 - (BOOL)joinWithConfig:(
CCEncodeConfig *)config events:(NSArray *)event completion:(CCComletionBlock)completion;
314 - (BOOL)publish:(CCComletionBlock)completion;
322 - (BOOL)unPublish:(CCComletionBlock)completion;
332 - (BOOL)subcribeWithStream:(
CCStream *)stream qualityLevel:(
int)level completion:(CCComletionBlock)completion;
341 - (BOOL)unsubscribeWithStream:(
CCStream *)stream completion:(CCComletionBlock)completion;
350 - (BOOL)getConnectionStats:(
CCStream *)stream completion:(CCComletionBlock)completion;
359 - (BOOL)getRegion:(
CCStream *)stream mixedStream:(
CCStream *)mixedSteam completion:(CCComletionBlock)completion;
369 - (BOOL)setRegion:(
CCStream *)stream region:(NSString *)regionID mixedStream:(
CCStream *)mixedSteam completion:(CCComletionBlock)completion;
377 - (BOOL)leave:(CCComletionBlock)completion;
385 - (BOOL)mix:(CCComletionBlock)completion;
393 - (BOOL)unmix:(CCComletionBlock)completion;
394 #pragma mark - 设置第三方推流地址 402 - (BOOL)addExternalOutput:(NSString*)url completion:(CCComletionBlock)completion;
403 #pragma mark - 移除第三方推流地址 411 - (BOOL)removeExternalOutput:(NSString *)url completion:(CCComletionBlock)completion;
412 #pragma mark - 变更第三方推流地址 420 - (BOOL)updateExternalOutput:(NSString *)url completion:(CCComletionBlock)completion;
421 #pragma mark - 设置流视频的状态 430 - (BOOL)stream:(
CCStream *)stream videoState:(BOOL)video completion:(CCComletionBlock)completion;
431 #pragma mark - 设置流音频的状态 440 - (BOOL)stream:(
CCStream *)stream audioState:(BOOL)audio completion:(CCComletionBlock)completion;
448 - (BOOL)stopLive:(CCComletionBlock)completion;
456 - (BOOL)startLive:(CCComletionBlock)completion;
464 - (BOOL)startLiveWithRecord:(BOOL)record completion:(CCComletionBlock)completion;
465 #pragma mark - 查询直播间状态 472 - (BOOL)getLiveStatus:(CCComletionBlock)completion;
473 #pragma mark - 设置日志是否开启(默认开启) 479 + (void)setLogState:(BOOL)state;
480 #pragma mark - 获取相机对象 488 #pragma mark - 房间配置获取及修改 496 - (BOOL)getRoomDescWithRoonID:(NSString *)roomID completion:(CCComletionBlock)completion;
506 - (BOOL)getRoomServerWithAccountID:(NSString *)accountId completion:(CCComletionBlock)completion;
516 - (BOOL)kickUserFromRoom:(NSString *)userID;
523 - (void)reconnectAtlas:(CCComletionBlock)completion;
529 - (void)sendAtlas:(NSString*)message completion:(CCComletionBlock)completion;
530 #pragma mark - 直播录制相关 537 - (BOOL)recordTo:(CCRecordType)type completion:(CCComletionBlock)completion;
NSString * userID
用户ID
Definition: CCStreamerBasic.h:190
NSString * localStreamID
推流ID
Definition: CCStreamerBasic.h:195
视频配置信息
Definition: CCEncodeConfig.h:28
CCVideoOriMode videoMode
流方向
Definition: CCStreamerBasic.h:199
NSString * getServerDomain()
流
Definition: CCStream.h:42
业务逻辑基本类
Definition: CCStreamerBasic.h:175
instancetype sharedStreamer()
NSString * roomID
房间ID
Definition: CCStreamerBasic.h:180
AVCaptureSession * getCaptureSession()
NSString * accountID
账号ID
Definition: CCStreamerBasic.h:185