JCSDK-iOS
JCMediaChannel.h
1 //
2 // JCMediaChannel.h
3 // JCSDK-OC
4 //
5 // Created by maikireton on 2017/8/11.
6 // Copyright © 2017年 juphoon. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #import "JCMediaChannelCallback.h"
11 #import "JCMediaChannelParticipant.h"
12 #import "JCMediaChannelConstants.h"
13 #import "JCMediaChannelJoinParam.h"
14 #import "JCMediaChannelQueryInfo.h"
15 #import "JCMediaChannelUtils.h"
16 
26 @interface JCMediaChannelPropChangeParam : NSObject
27 
33 @property (nonatomic, assign) bool uploadLocalAudio;
34 
40 @property (nonatomic, assign) bool uploadLocalVideo;
41 
47 @property (nonatomic, assign) bool audioOutput;
48 
54 @property (nonatomic, assign) bool cdnState;
55 
61 @property (nonatomic, assign) bool recordState;
62 
68 @property (nonatomic, assign) bool screenShare;
69 
75 @property (nonatomic, assign) bool title;
76 
77 @end
78 
82 @interface JCMediaChannelRecordRemoteParams : NSObject
83 
87 @property (nonatomic, assign) JCMediaChannelPictureSize recordResolution;
91 @property (nonatomic, assign) int frameRate;
95 @property (nonatomic, assign) JCMediaChannelVideoMergeMode mergeMode;
99 @property (nonatomic, assign) int videoWidth;
103 @property (nonatomic, assign) int videoHeight;
107 @property (nonatomic, assign) int iBitrate;
111 @property (nonatomic, copy) NSString *storage;
115 @property (nonatomic, copy) NSString *fileName;
119 @property (nonatomic, copy) NSString *remoteFileName;
123 @property (nonatomic, copy) NSString *protocol;
127 @property (nonatomic, assign) bool isVideo;
131 @property (nonatomic, strong) NSDictionary *recWatermarkText;
132 
133 
134 @end
135 
136 @interface JCMediaChannelRecordLocalParams : NSObject
137 
141 @property (nonatomic, copy) NSString *filePath;
142 
146 @property (nonatomic, assign) bool recordAudio;
147 
151 @property (nonatomic, assign) bool recordVideo;
152 
156 @property (nonatomic, assign) bool recordSelf;
157 
161 @property (nonatomic, assign) int frameRate;
162 
166 @property (nonatomic, assign) JCMediaChannelPictureSize recordResolution;
167 
171 @property (nonatomic, assign) JCMediaChannelVideoMergeMode mergeMode;
175 @property (nonatomic, assign) int videoWidth;
179 @property (nonatomic, assign) int videoHeight;
180 
181 @end
182 
183 
184 
185 @interface JCMediaChannelConfMergeModeParam : NSObject
186 
190 @property (nonatomic, assign) JCMediaChannelPictureSize videoLevel;
191 
195 @property (nonatomic, assign) JCMediaChannelVideoMergeMode videoMergeMode;
196 
200 @property (nonatomic, assign) int mergeFps;
201 
205 @property (nonatomic, assign) bool bPortrait;
206 
210 @property (nonatomic, assign) int videoWidth;
211 
215 @property (nonatomic, assign) int videoHeight;
216 
220 @property (nonatomic, assign) JCMediaChannelIntellegenceMergeMode videoIntelligentMergeMode;
221 
225 @property (nonatomic, assign) JCMediaChannelScsMergeMode scsMode;
226 
230 @property (nonatomic, copy) NSString *zoomActorId;
231 
235 @property (nonatomic, assign) int iBitrate;
236 
237 @end
238 
242 @interface JCMediaChannel : NSObject
243 
249 @property (nonatomic, readonly, copy) NSString *channelUri;
250 
254 @property (nonatomic, readonly, copy) NSString *channelId;
255 
259 @property (nonatomic, readonly, assign) int channelNumber;
260 
264 @property (nonatomic, readonly, assign) long confId;
265 
269 @property (nonatomic, readonly, copy) NSString *password;
270 
280 @property (nonatomic, readonly, assign) JCMediaChannelState state;
281 
285 @property (nonatomic, readonly, strong) NSArray *participants;
286 
293 @property (nonatomic, readonly, assign) bool uploadLocalAudio;
294 
301 @property (nonatomic, readonly, assign) bool uploadLocalVideo;
302 
311 @property (nonatomic, readonly, assign) bool audioOutput;
312 
318 @property (nonatomic, readonly, copy) NSString *screenRenderId;
319 
325 @property (nonatomic, readonly, copy) NSString *screenUserId;
326 
333 @property (nonatomic, readonly, assign) bool localRecording;
334 
338 @property (nonatomic, readonly, copy) NSString *title;
339 
346 @property (nonatomic, readonly, assign) JCMediaChannelRecordState recordState;
347 
354 @property (nonatomic, readonly, assign) JCMediaChannelCdnState cdnState;
355 
359 @property (nonatomic, readonly, assign) int spkLevel;
360 
364 @property (nonatomic, readonly, assign) int micLevel;
365 
382 + (JCMediaChannel* __nullable)create:(JCClient* __nonnull)client mediaDevice:(JCMediaDevice* __nonnull)mediaDevice callback:(id<JCMediaChannelCallback> __nonnull)callback;
383 
389 - (void)destroy;
390 
398 - (bool)setConfig:(NSString* __nonnull)key value:(NSString* __nonnull)value;
399 
406 - (NSString* __nullable)getConfig:(NSString* __nonnull)key;
407 
416 - (int)query:(NSString* __nonnull)channelId;
417 
432 - (bool)join:(NSString* __nonnull)channelIdOrUri joinParam:(JCMediaChannelJoinParam* __nullable)joinParam;
433 
443 - (bool)leave;
444 
456 - (bool)stop;
457 
476 - (bool)enableUploadAudioStream:(bool)enable;
477 
496 - (bool)enableUploadVideoStream:(bool)enable;
497 
514 - (bool)enableAudioOutput:(bool)enable;
515 
532 - (bool)requestVideo:(JCMediaChannelParticipant* __nonnull)participant pictureSize:(JCMediaChannelPictureSize)pictureSize;
533 
546 - (bool)enableScreenShare:(bool)enable;
547 
564 - (bool)requestScreenVideo:(NSString* __nonnull)screenUri pictureSize:(JCMediaChannelPictureSize)pictureSize;
565 
581 - (bool)enableCdn:(bool)enable keyInterval:(int)keyInterval;
582 
596 - (bool)enableRemoteRecord:(bool)enable recordParam:(JCMediaChannelRecordRemoteParams* __nullable)recordParam;
597 
607 - (bool)enableLocalRecord:(bool)enable recordParam:(JCMediaChannelRecordLocalParams* __nullable)recordParam;
608 
618 - (bool)enableLocalRecord:(bool)enable path:(NSString* __nonnull)path;
619 
628 - (JCMediaChannelParticipant* __nullable)getParticipant:(NSString* __nonnull)userId;
629 
637 - (NSString* __nullable)getStatistics;
638 
648 - (bool)setCustomProperty:(NSString* __nonnull)value forKey:(NSString* __nonnull)key;
649 
657 - (NSString* __nullable)getCustomProperty:(NSString* __nonnull)key;
658 
671 - (bool)sendMessage:(NSString * __nonnull)type content:(NSString * __nonnull)content toUserId:(NSString * __nullable)toUserId;
672 
684 - (int)inviteSipUser:(NSString* __nonnull)userId sipParam:(NSString* __nullable)sipParam;
685 
742 - (bool)sendCommand:(NSString * __nonnull)name commandParam:(NSString * __nonnull)param;
743 
752 - (bool)setRatio:(float)ratio;
753 
762 - (bool)setScreenMode:(JCMediaChannelConfMergeModeParam* __nonnull)param;
763 
769 - (int)generateRoomId;
770 
781 - (bool)sendVideoEmptyPack:(bool)empty;
782 
793 - (bool)sendAudioEmptyPack:(bool)empty;
794 @end
795 
JCMediaChannelPropChangeParam::cdnState
bool cdnState
Definition: JCMediaChannel.h:54
JCMediaChannelIntellegenceMergeMode
JCMediaChannelIntellegenceMergeMode
Definition: JCMediaChannelConstants.h:106
JCMediaChannelPropChangeParam::screenShare
bool screenShare
Definition: JCMediaChannel.h:68
JCMediaChannelPropChangeParam::uploadLocalVideo
bool uploadLocalVideo
Definition: JCMediaChannel.h:40
JCMediaChannelJoinParam
Definition: JCMediaChannelJoinParam.h:23
JCMediaDevice
Definition: JCMediaDevice.h:26
JCMediaChannelConfMergeModeParam
Definition: JCMediaChannel.h:186
JCMediaChannelRecordState
JCMediaChannelRecordState
Definition: JCMediaChannelConstants.h:222
JCMediaChannelRecordLocalParams
Definition: JCMediaChannel.h:137
JCMediaChannelVideoMergeMode
JCMediaChannelVideoMergeMode
Definition: JCMediaChannelConstants.h:85
JCMediaChannelCallback-p
Definition: JCMediaChannelCallback.h:27
JCMediaChannelPictureSize
JCMediaChannelPictureSize
Definition: JCMediaChannelConstants.h:53
JCMediaChannelCdnState
JCMediaChannelCdnState
Definition: JCMediaChannelConstants.h:234
JCMediaChannelRecordRemoteParams
Definition: JCMediaChannel.h:83
JCMediaChannelPropChangeParam
Definition: JCMediaChannel.h:27
JCMediaChannelState
JCMediaChannelState
Definition: JCMediaChannelConstants.h:160
JCMediaChannelPropChangeParam::uploadLocalAudio
bool uploadLocalAudio
Definition: JCMediaChannel.h:33
JCMediaChannelParticipant
Definition: JCMediaChannelParticipant.h:70
JCMediaChannelPropChangeParam::recordState
bool recordState
Definition: JCMediaChannel.h:61
JCMediaChannel
Definition: JCMediaChannel.h:243
JCClient
Definition: JCClient.h:22
JCMediaChannelPropChangeParam::audioOutput
bool audioOutput
Definition: JCMediaChannel.h:47
JCMediaChannelPropChangeParam::title
bool title
Definition: JCMediaChannel.h:75
JCMediaChannelScsMergeMode
JCMediaChannelScsMergeMode
Definition: JCMediaChannelConstants.h:144