Skip to main content

Manage Stage in Dyte's Webinar

In the webinar, both hosts and participants have the ability to manage the stage. This allows for seamless control and organization of the webinar session.

Host stage management

In Dyte's webinar platform, hosts have the capability to request participants to join the stage. When a host sends a request to a participant, the participant will receive a callback in the DyteWebinarEventsListener#onPresentRequestReceived() method. The participant can then choose to accept or decline the request using specific functions.

extension MeetingViewModel: DyteWebinarEventsListener {
...
func onPresentRequestReceived() {
// when host requests this user to join stage. Here one should give choice to either accept the request or decline it.
}
...
}
meeting.addWebinarEventsListener(webinarEventsListener: meetingModel)

To accept the request and join the stage, participants can utilize the following command:

meeting.webinar.acceptRequestToPresent()

Alternatively, if participants wish to decline the request and not join the stage, use the following command:

meeting.webinar.rejectRequestToPresent()

Participant stage management

Participants with the "Accept requests" setting enabled in the Preset can manage the stage in the webinar.

Access the list of requests

To access the list of requests received to join the stage, you can utilize the meeting.webinar.requestedParticipants API. This provides you with the necessary information about the participants who have requested to join the stage.

meeting.webinar.requestedParticipants

Listen to the incoming requests

Once you are in the meeting, you can register a listener in the meeting object to listen for incoming requests.

extension MeetingViewModel: DyteWebinarEventsListener {
func onAddedToStage() {
// when this user is joined to stage
}
func onPresentRequestClosed(participant: RequestToPresentParticipant) {
// when a user who was trying to join stage leaves the call.
}
func onPresentRequestReceived() {
// when host requests this user to join stage. Here one should give choice to either accept the request or decline it.
}
func onPresentRequestAccepted(participant: RequestToPresentParticipant) {
// when a join stage request is accepted by host
}
func onPresentRequestAdded(participant: RequestToPresentParticipant) {
// when a user is requesting to join the stage
}
func onPresentRequestRejected(participant: RequestToPresentParticipant) {
// when a join stage request is denied by host
}
func onPresentRequestWithdrawn(participant: RequestToPresentParticipant) {
// when a user who was trying to join stage withdraws their request to join.
}
func onRemovedFromStage() {
// when this user is no longer on stage
}
}
meeting.addWebinarEventsListener(webinarEventsListener: meetingModel)

Accept stage requests

To accept a request to join the stage, call the following function, where id represents the unique identifier of the request.

meeting.webinar.acceptRequest(id)
meeting.webinar.acceptAllRequest()

Reject a request

To reject a request, call the following function:

meeting.webinar.rejectRequest(id)
meeting.webinar.rejectAllRequest()
note

It's important to note that if a participant doesn't have the permission to perform these operations, the SDK will throw an UnsupportedOperationException