9#import <Foundation/Foundation.h>
30#pragma mark - MobileRTCMeetingServiceDelegate
35@protocol MobileRTCMeetingServiceDelegate <NSObject>
59- (void)onJoinMeetingConfirmed;
64- (void)onMeetingReady;
70- (void)onJBHWaitingWithCmd:(
JBHCmd)cmd;
101- (void)onNoHostMeetingWillTerminate:(NSUInteger)minutes;
116 completion:(
void (^_Nonnull)(NSString * _Nonnull displayName, NSString * _Nonnull password, BOOL cancel))completion;
124- (void)onProxyAuth:(NSString*_Nonnull)host
125 port:(NSUInteger)port
126 completion:(
void (^_Nonnull)(NSString * _Nonnull host, NSUInteger port, NSString *_Nonnull username, NSString * _Nonnull password, BOOL cancel))completion;
132- (void)onAskToEndOtherMeeting:(
void (^_Nonnull)(BOOL cancel))completion;
137- (void)onMicrophoneNoPrivilege;
142- (void)onCameraNoPrivilege;
151- (void)onFreeMeetingReminder:(BOOL)host
152 canFreeUpgrade:(BOOL)freeUpgrade
153 isFirstGift:(BOOL)first
154 completion:(
void (^_Nonnull)(BOOL upgrade))completion DEPRECATED_ATTRIBUTE;
160- (void)onUpgradeFreeMeetingResult:(NSUInteger)result;
172- (void)onFreeMeetingUpgradeToGiftFreeTrialStart;
177- (void)onFreeMeetingUpgradeToGiftFreeTrialStop;
182- (void)onFreeMeetingUpgradedToProMeeting;
190- (BOOL)onClickedInviteButton:(UIViewController * _Nonnull)parentVC addInviteActionItem:(NSMutableArray <
MobileRTCMeetingInviteActionItem *>* _Nullable)array;
197- (BOOL)onClickedAudioButton:(UIViewController * _Nonnull)parentVC;
204- (BOOL)onClickedParticipantsButton:(UIViewController * _Nonnull)parentVC;
212- (BOOL)onClickedShareButton:(UIViewController * _Nonnull)parentVC addShareActionItem:(NSMutableArray <
MobileRTCMeetingShareActionItem *>* _Nonnull)array;
220- (BOOL)onClickedEndButton:(UIViewController * _Nonnull)parentVC endButton:(UIButton * _Nonnull)endButton;
225- (void)onOngoingShareStopped;
232- (void)onClickedDialOut:(UIViewController * _Nonnull)parentVC isCallMe:(BOOL)me;
257- (void)onInMeetingChat:(NSString * _Nonnull)messageID;
276- (void)onRawLiveStreamPrivilegeChanged:(BOOL)hasPrivilege;
281- (void)onRawLiveStreamPrivilegeRequestTimeout;
288- (void)onUserRawLiveStreamPrivilegeChanged:(NSUInteger)userId hasPrivilege:(
bool)hasPrivilege;
305- (void)onZoomIdentityExpired;
312- (void)onClickShareScreen:(UIViewController * _Nonnull)parentVC;
320- (void)onClosedCaptionReceived:(NSString * _Nonnull)message speakerId:(NSUInteger)speakerID msgTime:(NSDate *_Nullable)msgTime;
325- (void)onWaitingRoomStatusChange:(BOOL)needWaiting;
357#pragma mark - MobileRTCAudioServiceDelegate
362@protocol MobileRTCAudioServiceDelegate <MobileRTCMeetingServiceDelegate>
368- (void)onSinkMeetingAudioStatusChange:(NSUInteger)userID;
373- (void)onSinkMeetingMyAudioTypeChange;
379- (void)onSinkMeetingAudioTypeChange:(NSUInteger)userID;
386- (void)onSinkMeetingAudioStatusChange:(NSUInteger)userID audioStatus:(
MobileRTC_AudioStatus)audioStatus;
391- (void)onAudioOutputChange;
396- (void)onMyAudioStateChange;
401- (void)onSinkMeetingAudioRequestUnmuteByHost;
404#pragma mark - MobileRTCVideoServiceDelegate
409@protocol MobileRTCVideoServiceDelegate <MobileRTCMeetingServiceDelegate>
415- (void)onSinkMeetingActiveVideo:(NSUInteger)userID;
422- (void)onSinkMeetingVideoStatusChange:(NSUInteger)userID;
427- (void)onMyVideoStateChange;
434- (void)onSinkMeetingVideoStatusChange:(NSUInteger)userID videoStatus:(
MobileRTC_VideoStatus)videoStatus;
440- (void)onSpotlightVideoChange:(BOOL)on;
446- (void)onSpotlightVideoUserChange:(NSArray <NSNumber *>* _Nonnull)spotlightedUserList;
452- (void)onSinkMeetingPreviewStopped;
458- (void)onSinkMeetingActiveVideoForDeck:(NSUInteger)userID;
470- (void)onSinkMeetingVideoRequestUnmuteByHost:(
void (^_Nonnull)(BOOL Accept))completion;
484- (void)onHostVideoOrderUpdated:(NSArray <NSNumber *>* _Nullable)orderArr;
490- (void)onLocalVideoOrderUpdated:(NSArray <NSNumber *>* _Nullable)localOrderArr;
496- (void)onFollowHostVideoOrderChanged:(BOOL)follow;
501#pragma mark - MobileRTCUserServiceDelegate
506@protocol MobileRTCUserServiceDelegate <MobileRTCMeetingServiceDelegate>
511- (void)onMyHandStateChange;
516- (void)onInMeetingUserUpdated;
522- (void)onSinkMeetingUserJoin:(NSUInteger)userID;
528- (void)onSinkMeetingUserLeft:(NSUInteger)userID;
534- (void)onSinkMeetingUserRaiseHand:(NSUInteger)userID;
540- (void)onSinkMeetingUserLowerHand:(NSUInteger)userID;
545- (void)onSinkLowerAllHands;
552- (void)onSinkUserNameChanged:(NSUInteger)userID userName:(NSString *_Nonnull)userName DEPRECATED_ATTRIBUTE;
559- (void)onSinkUserNameChanged:(NSArray <NSNumber *>* _Nullable)userNameChangedArr;
565- (void)onMeetingHostChange:(NSUInteger)hostId;
572- (void)onMeetingCoHostChange:(NSUInteger)userID isCoHost:(BOOL)isCoHost;
580#pragma mark - MobileRTCShareServiceDelegate
585@protocol MobileRTCShareServiceDelegate <MobileRTCMeetingServiceDelegate>
590- (void)onAppShareSplash;
598- (void)onSinkMeetingActiveShare:(NSUInteger)userID DEPRECATED_ATTRIBUTE;
605- (void)onSinkMeetingShareReceiving:(NSUInteger)userID DEPRECATED_ATTRIBUTE;
625- (void)onSinkShareSizeChange:(NSUInteger)userID;
629#pragma mark - MobileRTCInterpretationServiceDelegate
634@protocol MobileRTCInterpretationServiceDelegate <MobileRTCMeetingServiceDelegate>
640- (void)onInterpretationStart;
645- (void)onInterpretationStop;
650- (void)onInterpreterListChanged;
657- (void)onInterpreterRoleChanged:(NSUInteger)userID isInterpreter:(BOOL)isInterpreter;
664- (void)onInterpreterActiveLanguageChanged:(NSInteger)userID activeLanguageId:(NSInteger)activeLanID;
671- (void)onInterpreterLanguageChanged:(NSInteger)lanID1 andLanguage2:(NSInteger)lanID2;
687@protocol MobileRTCSignInterpretationServiceDelegate <MobileRTCMeetingServiceDelegate>
698- (void)onSignInterpreterListChanged;
703- (void)onSignInterpreterRoleChanged;
708- (void)onSignInterpreterLanguageChanged;
720- (void)onRequestSignInterpreterToTalk;
725- (void)onDisallowSignInterpreterToTalk DEPRECATED_MSG_ATTRIBUTE("Use -onTalkPrivilegeChanged:(BOOL)hasPrivilege instead");
731- (void)onTalkPrivilegeChanged:(BOOL)hasPrivilege;
736#pragma mark - MobileRTCWebinarServiceDelegate
741@protocol MobileRTCWebinarServiceDelegate <MobileRTCMeetingServiceDelegate>
746- (void)onSinkQAConnectStarted;
752- (void)onSinkQAConnected:(BOOL)connected;
758- (void)onSinkQAOpenQuestionChanged:(NSInteger)count;
765- (void)onSinkQAAddQuestion:(NSString *_Nonnull)questionID success:(BOOL)success;
772- (void)onSinkQAAddAnswer:(NSString *_Nonnull)answerID success:(BOOL)success;
778- (void)onSinkQuestionMarkedAsDismissed:(NSString *_Nonnull)questionID;
784- (void)onSinkReopenQuestion:(NSString *_Nonnull)questionID;
790- (void)onSinkReceiveQuestion:(NSString *_Nonnull)questionID;
796- (void)onSinkReceiveAnswer:(NSString *_Nonnull)answerID;
802- (void)onSinkUserLivingReply:(NSString *_Nonnull)questionID;
808- (void)onSinkUserEndLiving:(NSString *_Nonnull)questionID;
815- (void)onSinkVoteupQuestion:(NSString *_Nonnull)questionID orderChanged:(BOOL)orderChanged;
822- (void)onSinkRevokeVoteupQuestion:(NSString *_Nonnull)questionID orderChanged:(BOOL)orderChanged;
828- (void)onSinkDeleteQuestion:(NSArray <NSString *>*_Nonnull)questionIDArray;
834- (void)onSinkDeleteAnswer:(NSArray <NSString *>*_Nonnull)answerIDArray;
840- (void)onSinkQAAllowAskQuestionAnonymouslyNotification:(BOOL)beAllowed;
846- (void)onSinkQAAllowAttendeeViewAllQuestionNotification:(BOOL)beAllowed;
852- (void)onSinkQAAllowAttendeeUpVoteQuestionNotification:(BOOL)beAllowed;
858- (void)onSinkQAAllowAttendeeAnswerQuestionNotification:(BOOL)beAllowed;
864- (void)onSinkWebinarNeedRegister:(NSString * _Nonnull)registerURL;
871- (void)onSinkJoinWebinarNeedUserNameAndEmailWithCompletion:(BOOL (^_Nonnull)(NSString * _Nonnull username, NSString * _Nonnull email, BOOL cancel))completion;
876- (void)onSinkPanelistCapacityExceed;
904- (void)onSinkAttendeePromoteConfirmResult:(BOOL)agree userId:(NSUInteger)userId;
909- (void)onSinkSelfAllowTalkNotification;
914- (void)onSinkSelfDisallowTalkNotification;
920- (void)onAllowWebinarReactionStatusChanged:(BOOL)canReaction;
926- (void)onAllowAttendeeRaiseHandStatusChanged:(BOOL)canRaiseHand;
932- (void)onAllowAttendeeViewTheParticipantCountStatusChanged:(BOOL)canViewParticipantCount;
938@protocol MobileRTCLiveTranscriptionServiceDelegate <MobileRTCMeetingServiceDelegate>
945- (void)onCaptionStatusChanged:(BOOL)enable;
974- (void)onSinkRequestForLiveTranscriptReceived:(NSUInteger)requesterUserId bAnonymous:(BOOL)bAnonymous;
981@protocol MobileRTC3DAvatarDelegate <MobileRTCMeetingServiceDelegate>
986- (void)on3DAvatarItemThumbnailsDownloaded;
992- (void)on3DAvatarItemDataDownloading:(
int)index;
999- (void)on3DAvatarItemDataDownloaded:(
bool)success andIndex:(
int)index;
1001#pragma mark - MobileRTCCustomizedUIMeetingDelegate
1008@protocol MobileRTCCustomizedUIMeetingDelegate <NSObject>
1013- (void)onInitMeetingView;
1018- (void)onDestroyMeetingView;
1022#pragma mark - MobileRTCVideoRawDataDelegate
1029@protocol MobileRTCVideoRawDataDelegate <NSObject>
1038 framePixelBuffer:(CVPixelBufferRef _Nullable )pixelBuffer
1055 rawDataSending:(BOOL)on;
1059#pragma mark - MobileRTCAudioRawDataDelegate
1065@protocol MobileRTCAudioRawDataDelegate <NSObject>
1078- (void)onMobileRTCOneWayAudioAudioRawData:(
MobileRTCAudioRawData *_Nonnull)rawData userId:(NSUInteger)userId;
1081#pragma mark - MobileRTCAudioSourceDelegate
1087@protocol MobileRTCAudioSourceDelegate <NSObject>
1098- (void)onStartSendData;
1102- (void)onStopSendData;
1106- (void)onDeviceUninitialize;
1110#pragma mark - MobileRTCPreProcessorDelegate
1116@protocol MobileRTCPreProcessorDelegate <NSObject>
1126#pragma mark - MobileRTCVideoSourceDelegate
1132@protocol MobileRTCVideoSourceDelegate <NSObject>
1163- (void)onUninitialized;
1167#pragma mark - MobileRTCVideoSourceDelegate
1172@protocol MobileRTCShareSourceDelegate <NSObject>
1187#pragma mark - MobileRTCAudioRawDataDelegate
1197@protocol MobileRTCSMSServiceDelegate <NSObject>
1220#pragma mark - MobileRTCBOServiceDelegate
1221@protocol MobileRTCBOServiceDelegate <MobileRTCMeetingServiceDelegate>
1251- (void)onHasDataHelperRightsNotification:(
MobileRTCBOData * _Nonnull)dataHelper;
1256- (void)onLostCreatorRightsNotification;
1261- (void)onLostAdminRightsNotification;
1266- (void)onLostAssistantRightsNotification;
1271- (void)onLostAttendeeRightsNotification;
1276- (void)onLostDataHelperRightsNotification;
1283- (void)onNewBroadcastMessageReceived:(NSString *_Nullable)broadcastMsg senderID:(NSUInteger)senderID;
1290- (void)onBOStopCountDown:(NSUInteger)seconds;
1310- (void)onBOSwitchRequestReceived:(NSString *_Nullable)newBOName newBOID:(NSString *_Nullable)newBOID;
1313#pragma mark - MobileRTCReactionServiceDelegate
1314@protocol MobileRTCReactionServiceDelegate <MobileRTCMeetingServiceDelegate>
1333#pragma mark - MobileRTCBOServiceDelegate
1334@protocol MobileRTCBODataDelegate <MobileRTCMeetingServiceDelegate>
1340- (void)onBOInfoUpdated:(NSString *_Nullable)boId;
1345- (void)onUnAssignedUserUpdated;
1349#pragma mark - MobileRTCBOServiceDelegate
1350@protocol MobileRTCBOAdminDelegate <MobileRTCMeetingServiceDelegate>
1356- (void)onHelpRequestReceived:(NSString *_Nullable)strUserID;
1369- (void)onBOEndTimerUpdated:(NSUInteger)remaining isTimesUpNotice:(BOOL)isTimesUpNotice;
1373#pragma mark - MobileRTCBOServiceDelegate
1374@protocol MobileRTCBOAttendeeDelegate <MobileRTCMeetingServiceDelegate>
1385- (void)onHostJoinedThisBOMeeting;
1390- (void)onHostLeaveThisBOMeeting;
1394#pragma mark - MobileRTCBOServiceDelegate
1395@protocol MobileRTCBOCreatorDelegate <MobileRTCMeetingServiceDelegate>
1401- (void)onBOCreateSuccess:(NSString *_Nullable)BOID;
MobileRTCMeetError
MobileRTCMeetError An enumeration of Meeting States.
MobileRTCWebinarPromoteorDepromoteError
MobileRTCWebinarPromoteorDepromoteError An enumeration of promoting/demoting attendee and panelist er...
MobileRTCMeetingState
MobileRTCMeetingState An enumeration of meeting states.
MobileRTCVideoQuality
MobileRTCVideoQuality Quality of video.
MobileRTCBOControllerError
Error type of Starting BO Failed.
MobileRTCMinimizeMeetingState
Minimize Meeting state in Zoom UI.
MobileRTCChatMessageDeleteType
Enumerations of the chat message delete type.
MobileRTCChatAllowAttendeeChat
MobileRTCWebinarAllowAttendeeChat An enumeration of attendee chat permission in webinar.
MobileRTCMicrophoneError
MobileRTCAudioError An enumeration of Audio Errors.
MobileRTCRecordingStatus
Enumeration of recording status.
MobileRTCLiveStreamStatus
MobileRTCLiveStreamStatus An enumeration of Live Stream status in meeting.
MobileRTCMeetingChatPriviledgeType
MobileRTCMeetingChatPriviledgeType An enumeration of meeting chat types in meeting.
MobileRTCVideoRawDataRotation
MobileRTCVideoResolution The direction of video.
MobileRTCShareSettingType
Enumeration of LockShare Status changed.
MobileRTCCMRError
MobileRTCCMRError An enumeration of CMR-related result error states.
MobileRTCSMSVerifyResult
for SMS service usage.
FreeMeetingNeedUpgradeType
free meeting need upgrade type.
DialOutStatus
DialOutStatus An enumeration of outgoing call states.
MobileRTCSharingStatus
Enumeration of sharing status.
MobileRTCSignInterpretationStatus
MobileRTCBOStatus
enum for BO status.
MobileRTCEmojiReactionType
emoji reacion type.
JBHCmd
JBHCmd An enumeration of waiting UI when JBH is disabled.
MobileRTCLiveTranscriptionStatus
Live transcription status.
H323CallOutStatus
H323CallOutStatus An enumeration of H.323/SIP outgoing call status.
MobileRTCMeetingEndReason
MobileRTCAudioError An enumeration of Audio Errors.
MobileRTCH323ParingStatus
MobileRTCH323ParingStatus An enumeration of H.323/SIP pairing status.
MobileRTCSMSRetrieveResult
MobileRTCJoinMeetingInfo
MobileRTCJoinMeetingInfo An enumeration of information needed to Join Meeting.
MobileRTCPanelistChatPrivilegeType
Chat Privilege type of webinar panelist.
MobileRTCLiveTranscriptionOperationType
Live transcription operation type.
MobileRTCSubscribeFailReason
Video subscribe error.
MobileRTCClaimHostError
MobileRTCClaimHostError An enumeration of CLAIM HOST results in meeting.
MobileRTCEmojiReactionSkinTone
emoji reaction skin tone.
MobileRTCBOHelpReply
Result for requested help from attendee in BO Meeting.
The information of interpretation language.
Add custom invitation action items to the meeting.
Provides settings for meetings.
Add custom share action item to the meeting.
Raw live stream information, such as the broadcast name and URL.
for real name auth usage.
Process after the host receives the requirement from the user to give the local recording privilege.
Process after the host receives the requirement from the user to give the raw live stream privilege.