Skip to main content

Local User - Events

You can subscribe to various events on the local user by implementing DyteSelfEventsListener and passing the object to meeting.addSelfEventsListener(dyteSelfEventsListener).

Video update

Triggered when the user starts / stops the video using enableVideo or disableVideo

extension MeetingViewModel: DyteSelfEventsListener {
func onVideoUpdate(videoEnabled: Bool) {
if (videoEnabled) {
// video is enabled, and other participants in room can see local user
} else {
// video is disabled, and other participants in room can not see local user.
}
}
}

Audio update

Triggered when the user starts / stops the audio using enableAudio or disableAudio


extension MeetingViewModel: DyteSelfEventsListener {
func onAudioUpdate(audioEnabled: Bool) {
if (audioEnabled) {
// audio is enabled, and other participants in room can hear local user
} else {
// audio is disabled, and other participants in room can not hear local user.
}
}
}

Room disconnected update

Triggered when the user is disconnected due to media/network errors

extension MeetingViewModel: DyteSelfEventsListener {
func onMeetingRoomDisconnected() {
//disconnected
}
}

Proximity changed

Triggered when there is any change in proximity. Meaning if device is near ear piece which triggers display on/off.

extension MeetingViewModel: DyteSelfEventsListener {
func onProximityChanged(isNear: Bool) {
// isNear
// if true, display should be turned off, as user might be speaking through earpiece
// if false, display should be turned on, as user might be looking at display and listening through speaker/earphones.
}
}

Waitlist status

For meetings whose waiting room is enabled:

To get status of localUser in waiting room we can use

let waitListStatus = meeting.localUser.waitListStatus

Developers can listen to those changes in onWaitListStatusUpdate() callbacks

extension MeetingViewModel: DyteSelfEventsListener {
func onWaitListStatusUpdate(waitListStatus: WaitListStatus) {

}
}

Webinar Request

The onWebinarPresentRequestReceived() callback is triggered when the local user receives a request to join the webinar, while the onStoppedPresenting() callback is triggered when the local user ends their presentation.

extension MeetingViewModel: DyteSelfEventsListener {
func onWebinarPresentRequestReceived() {
// Display an alert to the user here, allowing them to accept or reject the request.
}
func onStoppedPresenting() {
//Display an alert to the user indicating that they are no longer presenting.
}
}

LocalUser removed

Whenever local user is removed from the meeting, onRemovedFromMeeting() callback is triggered.

extension MeetingViewModel: DyteSelfEventsListener {
func onRemovedFromMeeting() {
// Display an alert here that user no longer in the meeting.
}
}

Listen to Broadcast message within the room

Get broadcast messages within the room using onRoomMessage callback.

Parameters:

type: A client-specific type to differentiate between custom messages like "emoji" or "greetings"

payload: A dictionary containing the message payload, where keys are strings and values are of any type.

extension MeetingViewModel: DyteSelfEventsListener {
func onRoomMessage(type: String, payload: [String : Any]) {
// triggered when a message is sent within the room.
}