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 "JCMediaChannelQueryInfo.h"
14 
24 @interface JCMediaChannelSipParamExtra : NSObject
30 @property (nonatomic) bool sipUri;
36 @property (nonatomic) bool route;
40 @property (nonatomic, strong) NSString* __nullable displayName;
46 @property (nonatomic) bool mcu;
52 @property (nonatomic) bool video;
56 @property (nonatomic, strong) NSString* __nullable dtmfPassowrd;
62 -(NSString* __nonnull)toParamString;
63 
64 @end
65 
69 @interface JCMediaChannelSipParam : NSObject
70 
74 @property (nonatomic, strong) NSString* __nullable callerNumber;
78 @property (nonatomic, strong) NSString* __nullable coreNetwork;
82 @property (nonatomic) JCMediaChannelSipParamExtra* __nullable extra;
83 
84 @end
85 
90 
92 @property (nonatomic) JCMediaChannelVideoLevel videoLevel;
94 @property (nonatomic) JCMediaChannelMergeMode mergeMode;
98 @property (nonatomic) JCMediaChannelMergeModeEx mergeModeEx;
100 @property (nonatomic) int mergeFPS;
102 @property (nonatomic) int mergeBitrate;
104 @property (nonatomic) int mergeHeight;
106 @property (nonatomic) int mergeWidth;
107 
108 @end
109 
113 @interface JCMediaChannelRecordParam : NSObject
114 
120 @property (nonatomic, strong) NSString* __nonnull recordString;
121 
134 +(NSString* __nonnull)buildQiniuRecordParam:(BOOL)video bucketName:(NSString* __nonnull)bucketName secretKey:(NSString* __nonnull)secretKey accessKey:(NSString* __nonnull)accessKey fileName:(NSString* __nonnull)fileName;
135 
149 +(NSString* __nonnull)buildQiniuRecordParam:(BOOL)video bucketName:(NSString* __nonnull)bucketName secretKey:(NSString* __nonnull)secretKey accessKey:(NSString* __nonnull)accessKey fileName:(NSString* __nonnull)fileName videoConfig:(JCMediaChannelRecordParamVideoConfig* __nullable)videoConfig;
150 
164 +(NSString* __nonnull)buildAliossRecordParam:(BOOL)video bucketName:(NSString* __nonnull)bucketName secretKey:(NSString* __nonnull)secretKey accessKey:(NSString* __nonnull)accessKey endpoint:(NSString* __nonnull)endpoint fileName:(NSString* __nonnull)fileName;
165 
180 +(NSString* __nonnull)buildAliossRecordParam:(BOOL)video bucketName:(NSString* __nonnull)bucketName secretKey:(NSString* __nonnull)secretKey accessKey:(NSString* __nonnull)accessKey endpoint:(NSString* __nonnull)endpoint fileName:(NSString* __nonnull)fileName videoConfig:(JCMediaChannelRecordParamVideoConfig* __nullable)videoConfig;
181 
182 @end
183 
187 @interface JCMediaChannelJoinParam : NSObject
188 
192 @property (nonatomic) int capacity;
198 @property (nonatomic, strong) NSString* __nullable cdn;
204 @property (nonatomic, strong) JCMediaChannelRecordParam * __nullable record;
208 @property (nonatomic, strong) NSString* __nonnull password;
214 @property (nonatomic) bool smooth;
221 @property (nonatomic) JCMediaChannelMaxResolution maxResolution;
223 
228 @property (nonatomic) bool uriMode;
230 
233 @property (nonatomic) int heartbeatTime;
237 @property (nonatomic) int heartbeatTimeout;
241 @property (nonatomic) int framerate;
245 @property (nonatomic, strong) NSString* __nullable customProperty;
270 @property (nonatomic, strong) NSString* __nullable customVideoResolution;
274 @property (nonatomic) float videoRatio;
280 @property (nonatomic) int defaultBitrate;
281 
282 @end
283 
287 @interface JCMediaChannelPropChangeParam : NSObject
288 
294 @property (nonatomic) bool uploadLocalAudio;
295 
301 @property (nonatomic) bool uploadLocalVideo;
302 
308 @property (nonatomic) bool audioOutput;
309 
315 @property (nonatomic) bool cdnState;
316 
322 @property (nonatomic) bool recordState;
323 
329 @property (nonatomic) bool screenShare;
330 
336 @property (nonatomic) bool title;
337 
343 @property (nonatomic) bool customProperty;
344 
345 @end
346 
350 @interface JCMediaChannelScreenShareParam : NSObject
351 
357 @property (nonatomic) int bitrate;
363 @property (nonatomic) int frameRate;
371 @property (nonatomic) int resolution;
372 
373 @end
374 
378 @interface JCMediaChannel : NSObject
379 
383 @property (nonatomic, readonly, copy) NSString* __nullable channelUri;
384 
388 @property (nonatomic, readonly, copy) NSString* __nullable channelId;
389 
393 @property (nonatomic, readonly) int channelNumber;
394 
396 
399 @property (nonatomic, readonly) long confId;
401 
405 @property (nonatomic, readonly, copy) NSString* __nullable sessionId;
406 
410 @property (nonatomic, readonly) NSString* __nonnull password;
411 
421 @property (nonatomic, readonly) JCMediaChannelState state;
422 
426 @property (nonatomic, readonly, strong) NSArray* __nonnull participants;
427 
433 @property (nonatomic, readonly) bool uploadLocalAudio;
434 
440 @property (nonatomic, readonly) bool uploadLocalVideo;
441 
450 @property (nonatomic, readonly) bool audioOutput;
451 
457 @property (nonatomic, readonly, copy) NSString* __nullable screenRenderId;
458 
464 @property (nonatomic, readonly, copy) NSString* __nullable screenUserId;
465 
469 @property (nonatomic, readonly, copy) NSString* __nullable title;
470 
477 @property (nonatomic, readonly) JCMediaChannelRecordState recordState;
478 
485 @property (nonatomic, readonly) JCMediaChannelCdnState cdnState;
486 
490 @property (nonatomic, readonly) JCMediaChannelParticipant* __nullable selfParticipant;
491 
497 @property (nonatomic) bool volumeChangeNotify;
498 
512 @property (nonatomic, readonly) JCMediaChannelMaxResolution maxResolution;
513 
530 +(JCMediaChannel* __nullable)create:(JCClient* __nonnull)client mediaDevice:(JCMediaDevice* __nonnull)mediaDevice callback:(id<JCMediaChannelCallback> __nonnull)callback;
531 
539 +(void)destroy;
540 
549 -(int)query:(NSString* __nonnull)channelId;
550 
565 -(bool)join:(NSString* __nonnull)channelId joinParam:(JCMediaChannelJoinParam* __nullable)joinParam;
566 
576 -(bool)leave;
577 
589 -(bool)stop;
590 
609 -(bool)enableUploadAudioStream:(bool)enable;
610 
629 -(bool)enableUploadVideoStream:(bool)enable;
630 
647 -(bool)enableAudioOutput:(bool)enable;
648 
665 -(bool)requestVideo:(JCMediaChannelParticipant* __nonnull)participant pictureSize:(JCMediaChannelPictureSize)pictureSize;
666 
679 -(bool)enableScreenShare:(bool)enable screenShareParam:(JCMediaChannelScreenShareParam * __nullable)screenShareParam;
680 
697 -(bool)requestScreenVideo:(NSString* __nonnull)screenUri pictureSize:(JCMediaChannelPictureSize)pictureSize;
698 
712 -(bool)enableCdn:(bool)enable keyInterval:(int)keyInterval;
713 
725 -(bool)enableRecord:(bool)enable recordParam:(JCMediaChannelRecordParam* __nullable)recordParam;
726 -(JCMediaChannelParticipant* __nullable)getParticipant:(NSString* __nonnull)userId;
735 
743 -(NSString * __nullable)getStatistics;
744 
755 -(bool)setCustomProperty:(NSString * __nonnull)property;
756 
764 -(NSString * __nullable)getCustomProperty;
765 
780 -(bool)sendMessage:(NSString * __nonnull)type content:(NSString * __nonnull)content toUserId:(NSString * __nullable)toUserId;
781 
793 -(int)inviteSipUser:(NSString * __nonnull)userId sipParam:(JCMediaChannelSipParam* __nonnull)sipParam;
794 
851 -(bool)sendCommand:(NSString * __nonnull)name commandParam:(NSString * __nonnull)param;
852 
859 -(void)setCustomRole:(JCMediaChannelCustomRole)customRole participant:(JCMediaChannelParticipant * __nullable)participant;
860 
866 -(JCMediaChannelCustomRole)getCustomRole;
867 
874 -(void)setCustomState:(JCMediaChannelCustomState)customState participant:(JCMediaChannelParticipant * __nullable)participant;
875 
881 -(JCMediaChannelCustomState)getCustomState;
882 
891 -(BOOL)kick:(JCMediaChannelParticipant * __nonnull)participant;
892 
904 -(bool)sendCommandToDelivery:(NSString* __nonnull)command;
905 
916 -(void)enableSelfVideoRatio:(bool)enable ratio:(float)ratio;
917 
935 -(JCMediaDeviceVideoCanvas* __nullable)startScreenShareVideo:(JCMediaDeviceRender)type pictureSize:(JCMediaChannelPictureSize)pictureSize;
936 
942 -(void)stopScreenShareVideo;
943 
957 -(bool)subscribeParticipantAudio:(JCMediaChannelParticipant *__nonnull)participant subscribe:(bool)subscribe;
958 
959 @end
960 
最后更新时间: 11/9/2021, 5:34:32 PM