Skip to main content

Room features

See Join a meeting to initialize a room instance.


// Share meeting link
let guestLink = meeting.links.guestLink

Local/Remote video view

// Local and remote video views:
let localVideoView: UIView = meeting.localVideoView
let remoteVideoView: UIView = meeting.remoteVideoView


See Delegate methods.

meeting.delegate = self


Mute devices

meeting.mute(.video, true) // set false to unmute
meeting.mute(.audio, true)

Mute all participants


Set streaming camera = .front // set .back for back camera

Send a chat message

meeting.send(chat: String)

Send a custom message

meeting.send(custom: String)

Start/Stop recording


Set self as presenter

meeting.setPresenter(true) // set false to disable

Set a new layout

meeting.setLayout("auto") // set any supported layout

Take a snapshot


Observe screencast state from broadcast upload extension (see Screencasting)

meeting.screencast.observe() { isActive in
// called when broadcast extension has switched its state

Start/Stop a playback

meeting.startPlayback(id: String, audio: Bool, replace userId: String, url: URL, name: String, loopCount: Int)
meeting.stopPlayback(id: String)

Start/Update/Stop a broadcast

meeting.startBroadcast(streamUrl: URL, playerUrl: URL)
meeting.updateBroadcast(playerUrl: URL)

Set/Remove a background/foreground layer

meeting.addLayer(image: UIImage, index: 1) // Set a foreground from local image
meeting.addLayer(url: URL, index: -1) // Set a background from URL
meeting.addLayer(icon: String?, title: String?, content: String?, index: Int?) // Additional layer insert
meeting.removeLayer(index: 1) // Remove certain layer

Kick a user

meeting.kick(user: "user_id")

Lock meeting room


Leave meeting


Gathering connection stats

meeting.stats() { stats in
// evaluate stats