Room features
See Join a meeting to initialize a room instance.
Variables
Retrieve guest link
// 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
Delegate
See Delegate methods.
meeting.delegate = self
Methods
Mute devices
meeting.mute(.video, true) // set false to unmute
meeting.mute(.audio, true)
Mute all participants
meeting.muteAll()
Set streaming camera
meeting.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
meeting.startRecording()
meeting.stopRecording()
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
meeting.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)
meeting.stopBroadcast()
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
meeting.lock()
Leave meeting
meeting.leave()
Gathering connection stats
meeting.stats() { stats in
// evaluate stats
}