Skip to main content
MeetingKit is a singleton with only one instance per process. It carries only account-level and device-level capabilities: login, IM, local capture and preview, audio routing, process-side screen capture integration, and meeting queries and scheduling. All in-meeting operations and events are scoped to a room and go through a MeetingKitRoom instance created with createRoomWithDelegate:. The same account can create and enter multiple rooms at the same time, and the media and business state of each room are independent of each other.
Starting with 2.0.0, the in-meeting APIs have moved out of this class. For enterRoom:onSuccess:onFailed:, requestOpenCamera:view:onSuccess:onFailed:, sendRoomChatMessage:messageType:targetId:onSuccess:onFailed:, the adminXxx family, cloud recording, the waiting room, sub-meetings, sign-in, and similar APIs, use MeetingKitRoom instead.

Core APIs

sharedInstance()

+ (MeetingKit *)sharedInstance Creates the MeetingKit instance (singleton).

version()

- (NSString *)version Gets the MeetingKit version number.

addDelegate:()

- (void)addDelegate:(id <MeetingKitDelegate>)delegate Sets the global event callback. Through MeetingKitDelegate you receive two kinds of global event notifications: audio route changes and app performance. For in-room events, implement MeetingKitRoomDelegate and pass it in when creating the room.

createRoomWithDelegate:()

- (nullable MeetingKitRoom *)createRoomWithDelegate:(nullable id<MeetingKitRoomDelegate>)delegate Creates an independent meeting room instance. Each call returns a new MeetingKitRoom instance, and instances don’t affect each other. To be in multiple rooms at the same time, call it multiple times and hold each instance separately. The instance becomes invalid after you call the room’s exitRoom:, and you need to create a new one.

getRooms()

- (NSArray<MeetingKitRoom *> *)getRooms Gets the list of meeting rooms you’re currently in. Instances that have been created but haven’t entered the meeting yet, or that have already exited, aren’t included in the result.

loginWithToken:appGroup:onSuccess:onFailed:()

- (void)loginWithToken:(NSString *)token appGroup:(NSString *)appGroup onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Login API. You need to initialize the user information first before you can enter a room and perform other operations. This API enables process-wide local log capture by default.

loginWithToken:appGroup:logConfig:onSuccess:onFailed:()

- (void)loginWithToken:(NSString *)token appGroup:(NSString *)appGroup logConfig:(SEALogConfig *)logConfig onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Logs in with a custom log configuration. You need to initialize the user information first before you can enter a room and perform other operations.

logout()

- (void)logout Logout API. Exits and destroys all room instances and releases resources, so you don’t need to call exitRoom: on each room instance.

IM APIs

enableImWithDelegate:onSuccess:onFailed:()

- (void)enableImWithDelegate:(nullable id<MeetingKitIMDelegate>)delegate onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Enables IM. Call this API to turn on the SDK’s IM service, which you can use to build features such as pre-meeting calls and notifications.

disableIm()

- (void)disableIm Disables IM. When you no longer need the IM service, disable it with this API.

Meeting APIs

getMeetingList:onFailed:()

- (void)getMeetingList:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets the meeting list.

getMoreMeetingList:onFailed:()

- (void)getMoreMeetingList:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets more of the meeting list (next page).

getHistoryMeetingList:onFailed:()

- (void)getHistoryMeetingList:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets the past meeting list.

getMoreHistoryMeetingList:onFailed:()

- (void)getMoreHistoryMeetingList:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets more of the past meeting list (next page).

getMeetingDetailsWithMeetingId:onSuccess:onFailed:()

- (void)getMeetingDetailsWithMeetingId:(NSString *)meetingId onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets meeting details.

getMeetingDetailsWithRoomNo:onSuccess:onFailed:()

- (void)getMeetingDetailsWithRoomNo:(NSString *)roomNo onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets meeting details.

getParticipantListsWithMeetingId:onSuccess:onFailed:()

- (void)getParticipantListsWithMeetingId:(NSString *)meetingId onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets the attendance records of a meeting.

getMoreParticipantListsWithMeetingId:onSuccess:onFailed:()

- (void)getMoreParticipantListsWithMeetingId:(NSString *)meetingId onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets more attendance records (next page).

requestCancelMeetingWithMeetingId:onSuccess:onFailed:()

- (void)requestCancelMeetingWithMeetingId:(NSString *)meetingId onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Requests to cancel a meeting.

createRoom:onSuccess:onFailed:()

- (void)createRoom:(SEAMeetingParam *)params onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Creates a room.

updateRoom:onSuccess:onFailed:()

- (void)updateRoom:(SEAMeetingParam *)params onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Updates room data.

User APIs

getAgentList:keyword:onSuccess:onFailed:()

- (void)getAgentList:(NSArray <NSNumber *> *)typesList keyword:(nullable NSString *)keyword onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets the device list.

getMoreAgentList:keyword:onSuccess:onFailed:()

- (void)getMoreAgentList:(NSArray <NSNumber *> *)typesList keyword:(nullable NSString *)keyword onSuccess:(nullable SEASuccessBlock)onSuccess onFailed:(nullable SEAFailedBlock)onFailed Gets more of the device list (next page).

Local capture APIs

updateLocalView:()

- (void)updateLocalView:(VIEW_CLASS *)view Updates the local camera preview.

switchCamera()

- (void)switchCamera Switches between the front and rear cameras.

setLocalPreviewMirror:()

- (void)setLocalPreviewMirror:(BOOL)mirror Sets the local preview mirroring preference for the front camera. Applies only to the local preview and doesn’t affect the published data. The front camera is mirrored according to mirror, and the rear camera is never mirrored; after you switch cameras, the SDK applies the corresponding policy automatically.

currentCameraDirection()

- (SEACameraDirection)currentCameraDirection Gets the current camera direction. Returns the direction of the camera currently used for capture; see SEACameraDirection.

Audio routing APIs

switchAudioRoute:()

- (void)switchAudioRoute:(SEAAudioRoute)route Switches the audio route. Use this API to request switching between built-in audio output devices, such as the speaker and the earpiece. When a Bluetooth or wired headset is present, iOS decides which external device is used. The actual final route is whatever currentAudioRoute and the onAudioRouteChange:previousRoute:() callback in MeetingKitDelegate report.

currentAudioRoute()

- (SEAAudioRoute)currentAudioRoute Gets the system’s current actual audio route. Returns the audio route the system is actually using, such as the speaker, the earpiece, or a Bluetooth or wired headset. See SEAAudioRoute.

headphoneDeviceAvailable()

- (BOOL)headphoneDeviceAvailable Whether a wired headset is present. Returns whether a wired headset is present.

bluetoothDeviceAvailable()

- (BOOL)bluetoothDeviceAvailable Whether a Bluetooth headset is present. Returns whether a Bluetooth headset is present.

Virtual background APIs

Virtual background applies to the single shared camera capture pipeline in the process. It’s a device-level capability, and its settings apply to all rooms at once. After you switch cameras during the meeting or reconnect after a disconnect, the SDK automatically re-applies the current configuration, so you don’t need to do it yourself. For usage, see Virtual background.

installVirtualBackground:()

- (SEAError)installVirtualBackground:(nullable NSString *)modelPath Installs the virtual background component. We recommend calling it before entering the room and turning on the camera. After installation, you also need to call enabledVirtualBackground:() for it to take effect.

uninstallVirtualBackground()

- (void)uninstallVirtualBackground Uninstalls the virtual background component. Releases the inference session and related buffers.

enabledVirtualBackground:()

- (SEAError)enabledVirtualBackground:(BOOL)enabled Virtual background switch. After installation, it’s off by default and must be turned on explicitly. When off, frames pass straight through with zero overhead, and no inference runs. Calling it before the component is installed returns SEAErrorConflict.

setVirtualBackgroundBlur:()

- (void)setVirtualBackgroundBlur:(NSInteger)level Sets background blur. Mutually exclusive with setVirtualBackgroundImage:(); the later call wins.

setVirtualBackgroundImage:()

- (void)setVirtualBackgroundImage:(nullable UIImage *)image Sets background replacement. Mutually exclusive with setVirtualBackgroundBlur:(); the later call wins.

setVirtualBackgroundInferenceInterval:()

- (void)setVirtualBackgroundInferenceInterval:(NSInteger)interval Sets the segmentation inference interval. A performance tier for you to set per device model; we don’t recommend exposing it to end users.

setVirtualBackgroundMaskSync:()

- (void)setVirtualBackgroundMaskSync:(BOOL)enabled Sets mask sync. Eliminates misaligned trails when waving, at the cost of the video update rate dropping to the mask rate. When interval is 1, turning it on or off makes no difference at all; it only takes effect after you increase the inference interval.

isVirtualBackgroundEnabled()

- (BOOL)isVirtualBackgroundEnabled Gets whether virtual background is on.

Screen sharing APIs

broadcastStartedWithAppGroup:delegate:()

- (void)broadcastStartedWithAppGroup:(NSString *)appGroup delegate:(id<MeetingKitScreenDelegate>)delegate Starts screen recording in the extension and binds the delegate. Use this method in the extension’s SampleHandler. After screen capture is turned off, the SDK notifies you of the current device capture status through the meetingRoom:onScreenRecordStatus:() callback in MeetingKitRoomDelegate. Based on the status in the callback, choose whether to request to start sharing or to stop sharing.

sendSampleBuffer:withType:()

- (void)sendSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType Sends screen capture frames from the extension. Use this method in the extension’s SampleHandler.