Room Class Methods - Flutter
join()
- After creating the instance of VideoSDK Room, you can join VideoSDK Room by calling
join()method.
Events associated with join():
- Local Participant will receive a
roomJoinedevent, when successfully joined. - Remote Participant will receive a
participantJoinedevent with the newly joinedParticipantobject from the event handler.
Participant having ask_join permission inside token
-
If a token contains the permission
ask_join, then the participant will not join the room directly after callingjoin(), but an event will be emitted to the participant having the permissionallow_joincalledentryRequested. -
After the decision from the remote participant, an event will be emitted to participant called
entryResponded. This event will contain the decision made by the remote participant.
Participant having allow_join permission inside token
- If a token containing the permission
allow_join, then the participant will join the room directly after callingjoin().
Returns
void
leave()
- It is used to leave the current running room session.
Events associated with leave():
- Local participant will receive a
roomLeftevent. - All remote participants will receive a
participantLeftevent withparticipantIdstring from the event handler.
Returns
void
end()
- It is used to end the current running room session.
- By calling
end(), all joined participants including localParticipant of that session will leave the room.
Events associated with end():
- All participants and localParticipant, will receive
roomLeftevent.
Returns
void
enableCam()
- It is used to enable camera device.
streamEnabledevent will be emitted withstreamobject from the event handler, inside that participant object.
Returns
void
disableCam()
- It is used to disable camera device.
streamDisabledevent will be emitted withstreamobject from the event handler, inside that participant object.
Returns
void
unmuteMic()
- It is used to enable microphone device.
streamEnabledevent will be emitted withstreamobject from the event handler, inside that participant object.
Returns
void
muteMic()
- It is used to disable microphone device.
streamDisabledevent will be emitted withstreamobject from the event handler, inside that participant object.
Returns
void
enableScreenShare()
- it is used to enable screen-sharing.
streamEnabledevent will be emitted withstreamobject from the event handler, inside that participant object.- presenterChanged will also receive a callback with the
presenterId.
Returns
void
disableScreenShare()
- It is used to disable screen-sharing.
streamDisabledevent will be emitted withstreamobject from the event handler, inside that participant object.- presenterChanged will also receive a callback with the
null.
Returns
void
changeMode()
- It is used to change the mode fo the participant from
SEND_AND_RECVtoSIGNALLING_ONLYand vice-versa. participantModeChangeevent will be emitted withparticipantIdandmodeof the participant
Parameters
- requestedMode:
Mode.SEND_AND_RECV|Mode.SIGNALLING_ONLY
Returns
void
Example
room.changeMode(Mode.SEND_AND_RECV);
startRecording()
-
It is used to start room recording.
-
All participants and localParticipant, will receive
recordingStartedevent. -
webhookUrlwill be triggered when the recording is completed and stored into server. Read more about webhooks here.
Parameters
-
webhookUrl: String
-
awsDirPath: String
-
config:
- layout:
- type: "GRID" | "SPOTLIGHT" | "SIDEBAR"
- priority: "SPEAKER" | "PIN"
- gridSize: Number `max 4`
- theme: "DARK" | "LIGHT" | "DEFAULT"
- mode: "video-and-audio" | "audio"
- quality: "low" | "med" | "high"
- orientation: "landscape" | "portrait"
- layout:
Returns
void
Example
const webhookUrl = "https://webhook.your-api-server.com";
room.startRecording(webhookUrl:webhookUrl,
config: {
'layout': {
'type': 'GRID',
'priority': 'SPEAKER',
'gridSize': 4,
},
'theme': "LIGHT",
"mode": "video-and-audio"
});
stopRecording()
- It is used to stop room recording.
- All participants and localParticipant, will receive
recordingStoppedevent.
Returns
void
Example
room.stopRecording();
startLivestream()
- It is used to start room livestreaming.
- You will be able to start livestream the room to another platforms such as Youtube, Facebook, etc. that supports
rtmpstreaming. - All participants and localParticipant, will receive
liveStreamStartedevent.
Parameters
-
outputs:
List<Map<String, String>>[{ url: String, streamKey: String }] -
config:
- layout:
- type: "GRID" | "SPOTLIGHT" | "SIDEBAR"
- priority: "SPEAKER" | "PIN"
- gridSize: Number `max 4`
- theme: "DARK" | "LIGHT" | "DEFAULT"
- layout:
Returns
void
Example
var outputs = [
{
url: "rtmp://a.rtmp.youtube.com/live2",
streamKey: "<STREAM_KEY>",
},
{
url: "rtmps://",
streamKey: "<STREAM_KEY>",
},
];
var liveStreamConfig = {
'layout': {
'type': 'GRID',
'priority': 'SPEAKER',
'gridSize': 4,
},
'theme': "LIGHT",
};
room.startLivestream(outputs, config: livestreamConfig);
stopLivestream()
- It is used to stop room livestreaming.
- All participants and localParticipant, will receive
livestreamStoppedevent.
Returns
void
Example
room.stopLivestream();
startHls()
- It is used to start HLS.
- All participants and localParticipant, will receive
hlsStartedevent with theplaybackHlsUrlandliveStreamUrlof the HLS feed.
Parameters
- config:
- layout:
- type: "GRID" | "SPOTLIGHT" | "SIDEBAR"
- priority: "SPEAKER" | "PIN"
- gridSize: Number `max 25`
- theme: "DARK" | "LIGHT" | "DEFAULT"
- mode: "video-and-audio" | "audio"
- quality: "low" | "med" | "high"
- oreintation: "landscape" | "portrait"
- layout:
Returns
void
Example
room.startHls(config: {
'layout': {
'type': 'GRID',
'priority': 'SPEAKER',
'gridSize': 4,
},
'theme': "LIGHT",
"mode": "video-and-audio"
});
stopHls()
- It is used to stop HLS.
- All participants and localParticipant, will receive
hlsStoppedevent.
Returns
void
Example
room.stopHls();
getCameras()
- It will return all connected camera devices.
Returns
- List<
MediaDeviceInfo>
Example
List<MediaDeviceInfo> cams = room.getCameras();
print(cams);
changeCam()
- It is used to change the camera device.
- If multiple camera devices are connected, by using
changeCam(), one can change the camera device with camera device id. - You can get list of connected video devices using
VideoSDK.mediaDevices
Parameters
- deviceId: String
Returns
void
Example
room.changeCam(deviceId);
getAudioOutputDevices()
- It will return all the available audio output devices.
Returns
- List<
MediaDeviceInfo>
Example
List<MediaDeviceInfo> audioOutputDevices = room.getAudioOutputDevices();
print(audioOutputDevices);
switchAudioDevice()
- It is used to change the audio output device.
- You can get list of connected audio output devices using
getAudioOutputDevices
Parameters
- device: MediaDeviceInfo
Returns
void
Example
room.switchAudioDevice(device);
on()
- It is used to listen
Roomrelated events.
Parameters
-
event
- type:
Events - This will specify the event to be listened.
- type:
-
eventHandler
- type:
Function - This will be invoked whenever, specified event occurred.
- type:
Returns
void
Example
room.on(Events.roomJoined, () {
// do something
});
Got a Question? Ask us on discord

