RoomSession
Represents a room session. You can obtain instances of this class by subscribing to the appropriate events from Video.Client.
Example
const video = new Video.Client({
project: "<project-id>",
token: "<project-token>",
});
video.on("room.started", async (roomSession) => {
console.log("This is my RoomSession object:", roomSession);
});
Properties
displayName
• displayName: string
Display name for this room. Defaults to the value of name
hideVideoMuted
• hideVideoMuted: boolean
Whether muted videos are shown in the room layout. See setHideVideoMuted
id
• id: string
Unique id for this room session
layoutName
• layoutName: string
Current layout name used in the room.
meta
• meta: [Record][record-type]<string, unknown>
Metadata associated to this room session.
name
• name: string
Name of this room
previewUrl
• Optional previewUrl: string
URL to the room preview.
layoutName
• Optional layoutName: string
Current layout name used in the room.
recording
• recording: boolean
Whether recording is active
recordings
• Optional recordings: any[]
Please use getRecordings instead.
List of active recordings in the room
roomId
• roomId: string
Id of the room associated to this room session
Methods
audioMute
▸ audioMute(params): Promise<void>
Puts the microphone of a given member on mute. The other participants will not hear audio from the muted participant anymore.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to mute. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.audioMute({ memberId: id });
audioUnmute
▸ audioUnmute(params): Promise<void>
Unmutes the microphone of a given member if it had been previously muted.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to unmute. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.audioUnmute({ memberId: id });
deaf
▸ deaf(params): Promise<void>
Mutes the incoming audio for a given member. The affected participant will not hear audio from the other participants anymore.
Note that in addition to making a participant deaf, this will also automatically mute the microphone of the target participant. If you want, you can then manually unmute it by calling audioUnmute.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.deaf({ memberId: id });
deleteMemberMeta
▸ deleteMemberMeta(params): Promise<void>
Deletes the specified keys from the metadata for the specified member.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId? | string | Id of the member to affect. If omitted, affects the default device in the local client. |
params.keys | string[] | The keys to remove. |
Returns
Promise<void>
Example
roomSession.on("member.updated", (e) => {
// We can set an event listener to log changes to the metadata.
console.log(e.member.meta);
});
await roomSession.setMemberMeta({
memberId: "...",
meta: { foo: "bar", baz: true },
});
// The logger will now print `{ foo: "bar", baz: true }`
await roomSession.deleteMemberMeta({ memberId: "...", keys: ["foo"] });
// The logger will now print `{ baz: true }`
deleteMeta
▸ deleteMeta(keys): Promise<void>
Deletes the specified keys from the metadata for this RoomSession.
Parameters
| Name | Type | Description |
|---|---|---|
keys | string[] | The keys to remove. |
Returns
Promise<void>
Example
roomSession.on("room.updated", (e) => {
// We can set an event listener to log changes to the metadata.
console.log(e.room.meta);
});
await roomSession.setMeta({ foo: "bar", baz: true });
// The logger will now print `{ foo: "bar", baz: true }`
await roomSession.deleteMeta(["foo"]);
// The logger will now print `{ baz: true }`
demote
▸ demote(params): Promise<void>
Demotes a participant from "member" to "audience". See promote.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.mediaAllowed? | "all" | "audio-only" | "video-only" | Specifies the media that the client will be allowed to receive. An audience participant cannot send any media. |
Returns
Promise<void>
Example
await roomSession.demote({
memberId: "de550c0c-3fac-4efd-b06f-b5b8614b8966",
mediaAllowed: "all",
});
getLayouts
▸ getLayouts(): Promise<{ layouts: string[] }>
Returns a list of available layouts for the room. To set a room layout, use setLayout.
Returns
Promise<{ layouts: string[] }>
Example
await roomSession.getLayouts()
// returns:
{
"layouts": [
"8x8", "2x1", "1x1", "5up", "5x5",
"4x4", "10x10", "2x2", "6x6", "3x3",
"grid-responsive", "highlight-1-responsive"
]
}
getMembers
▸ getMembers(): Promise<{ members: VideoMemberEntity[] }>
Returns a list of members currently in the room.
Returns
Promise<{ members: VideoMemberEntity[] }>
an object with type: Promise<{ members: VideoMemberEntity[] }>
Example
await roomSession.getMembers()
// returns:
{
"members": [
{
"visible": true,
"room_session_id": "fde15619-13c1-4cb5-899d-96afaca2c52a",
"input_volume": 0,
"id": "1bf4d4fb-a3e4-4d46-80a8-3ebfdceb2a60",
"input_sensitivity": 50,
"output_volume": 0,
"audio_muted": false,
"name": "Mark",
"deaf": false,
"video_muted": false,
"room_id": "aae25822-892c-4832-b0b3-34aac3a0e8d1",
"type": "member"
},
{
"visible": true,
"room_session_id": "fde15619-13c1-4cb5-899d-96afaca2c52a",
"input_volume": 0,
"id": "e0c5be44-d6c7-438f-8cda-f859a1a0b1e7",
"input_sensitivity": 50,
"output_volume": 0,
"audio_muted": false,
"name": "David",
"deaf": false,
"video_muted": false,
"room_id": "aae25822-892c-4832-b0b3-34aac3a0e8d1",
"type": "member"
}
]
}
getMemberMeta
▸ getMemberMeta(): Promise<{ meta: Object }>
Returns the metadata assigned to the specified member.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member for which to obtain the metadata. |
Returns
Promise<{ meta: Object }>
Example
const { meta } = await roomSession.getMemberMeta();
console.log(meta);
getMeta
▸ getMeta(): Promise<{ meta: Object }>
Returns the metadata assigned to this Room Session.
Returns
Promise<{ meta: Object }>
Example
const { meta } = await roomSession.getMeta();
console.log(meta);
getPlaybacks
▸ getPlaybacks(): Promise<{ playbacks: RoomSessionPlayback }> - See RoomSessionPlayback for more details.
Obtains a list of playbacks for the current room session.
Returns
Promise<{ playbacks: RoomSessionPlayback }> - See RoomSessionPlayback for more details.
Example
const pl = await roomSession.getPlaybacks();
if (pl.playbacks.length > 0) {
console.log(rec.playbacks[0].id, recs.playbacks[0].state);
}
getRecordings
▸ getRecordings(): Promise<{ recordings: RoomSessionRecording }> - See RoomSessionRecording for more details.
Obtains a list of recordings for the current room session.
Returns
Promise<{ recordings: RoomSessionRecording }> - See RoomSessionRecording for more details.
Example
const recs = await roomSession.getRecordings();
if (recs.recordings.length > 0) {
console.log(recs.recordings[0].id, recs.recordings[0].duration);
}
getStreams
▸ getStreams(): Promise<{ streams: RoomSessionStream }> - See RoomSessionStream for more details.
Obtains a list of active streams for this RoomSession. These are RTMP streams of the audio/video content of this room, which will be sent to an external party (e.g., to YouTube).
Returns
Promise<{ streams: RoomSessionStream }> - See RoomSessionStream for more details.
Example
const s = await roomSession.getStreams();
for (const stream of s.streams) {
console.log(stream.id, stream.url);
}
lock
▸ lock(params): Promise<void>
Locks the room. This prevents new participants from joining the room.
Returns
Promise<void>
Example
await roomSession.lock();
off
▸ off(event, fn?)
Remove an event handler.
Parameters
| Name | Type | Description |
|---|---|---|
event | string | Name of the event. See Events for the list of available events. |
fn? | Function | An event handler which had been previously attached. |
on
▸ on(event, fn)
Attaches an event handler to the specified event.
Parameters
| Name | Type | Description |
|---|---|---|
event | string | Name of the event. See Events for the list of available events. |
fn | Function | An event handler. |
Example
In the below example, we are listening for the call.state event and logging the current call state to the console.
This means this will be triggered every time the call state changes.
call.on("call.state", (call) => {
console.log("call state changed:", call.state);
});
once
▸ once(event, fn)
Attaches an event handler to the specified event. The handler will fire only once.
Parameters
| Name | Type | Description |
|---|---|---|
event | string | Name of the event. See Events for the list of available events. |
fn | Function | An event handler. |
play
▸ play(params): Promise<RoomSessionPlayback> - See RoomSessionPlayback for more details.
Starts a playback in the room. You can use the returned RoomSessionPlayback object to control the playback (e.g., pause, resume, setVolume and stop).
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.url | string | The url (http, https, rtmp, rtmps) of the stream to reproduce. |
params.seekPosition? | number | The starting timecode in milliseconds for playback. Defaults to 0. |
params.positions? | VideoPositions | Positions to assign as soon as the playback starts. You can use the special keyword self to refer to the id of the playback. |
params.layout? | string | Layout to change to when the playback starts. |
Returns
Promise<RoomSessionPlayback> - See RoomSessionPlayback for more details.
Example
const playback = await roomSession.play({ url: "rtmp://example.com/foo" });
await playback.stop();
promote
▸ promote(params): Promise<void>
Promotes a participant from "audience" to "member". See demote.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the audience participant to promote. |
params.joinAudioMuted? | boolean | Force the member's audio to be muted right after the promotion. |
params.joinVideoMuted? | boolean | Force the member's video to be muted right after the promotion. |
params.mediaAllowed? | "all" | "audio-only" | "video-only" | Specifies the media that the client will be allowed to send. A member participant can always receive all media. |
params.meta? | [Record][record-type]<string, unknown> | Metadata to assign to the member. |
params.permissions? | string[] | List of [permissions][permissions] to grant when the Audience participant will become a Member. |
Returns
Promise<void>
Example
await roomSession.promote({
memberId: "de550c0c-3fac-4efd-b06f-b5b8614b8966",
mediaAllowed: "all",
permissions: [
"room.self.audio_mute",
"room.self.audio_unmute",
"room.self.video_mute",
"room.self.video_unmute",
"room.list_available_layouts",
],
});
removeAllListeners
▸ removeAllListeners(event?)
Detaches all event listeners for the specified event.
Parameters
| Name | Type | Description |
|---|---|---|
event? | string | Name of the event (leave this undefined to detach listeners for all events). See Events for the list of available events. |
removeAllMembers
▸ removeAllMembers(): Promise<void>
Removes all the members from this room session. The room session will end.
Returns
Promise<void>
Example
await roomSession.removeAllMembers();
removeMember
▸ removeMember(params): Promise<void>
Removes a specific participant from the room.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to remove. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.removeMember({ memberId: id });
setHideVideoMuted
▸ setHideVideoMuted(value): Promise<void>
Show or hide muted videos in the room layout. Members that have been muted via videoMute not appear in the video stream, instead of appearing as a mute image, if this setting is enabled.
Muted videos are shown by default.
Parameters
| Name | Type | Description |
|---|---|---|
value | boolean | Whether to hide muted videos in the room layout. |
Returns
Promise<void>
Example
await roomSession.setHideVideoMuted(false);
setInputSensitivity
▸ setInputSensitivity(params): Promise<void>
Sets the input level at which the participant is identified as currently speaking.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.value | number | Desired sensitivity from 0 (lowest sensitivity, essentially muted) to 100 (highest sensitivity). The default value is 30. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.setInputSensitivity({ memberId: id, value: 80 });
setInputVolume
▸ setInputVolume(params): Promise<void>
Sets the input volume for a given member (e.g., the microphone input level).
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.volume | number | Desired volume. Values range from -50 to 50, with a default of 0. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.setInputVolume({ memberId: id, volume: -10 });
setLayout
▸ setLayout(params): Promise<void>
Sets a layout for the room. You can obtain a list of available layouts with getLayouts.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.name | string | Name of the layout. |
params.positions? | VideoPositions | Positions to assign as soon as the new layout is set. |
Returns
Promise<void>
Example
Set the 6x6 layout:
await roomSession.setLayout({ name: "6x6" });
setMemberMeta
▸ setMemberMeta(params): Promise<void>
Assigns custom metadata to the specified RoomSession member. You can use this to store metadata whose meaning is entirely defined by your application.
Note that calling this method overwrites any metadata that had been previously set on the specified member.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.meta | [Record][record-type]<string, unknown> | The medatada object to assign to the member. |
Returns
Promise<void>
Example
Setting metadata for a member:
await roomSession.setMemberMeta({
memberId: 'de550c0c-3fac-4efd-b06f-b5b8614b8966' // you can get this from getMembers()
meta: {
email: 'joe@example.com'
}
})
setMemberPosition
▸ setMemberPosition(params): Promise<void>
Assigns a position in the layout to the specified member.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.position | VideoPosition | Position to assign in the layout. |
Returns
Promise<void>
Example
await roomSession.setMemberPosition({
memberId: "1bf4d4fb-a3e4-4d46-80a8-3ebfdceb2a60",
position: "off-canvas",
});
setMeta
▸ setMeta(meta): Promise<void>
Assigns custom metadata to the RoomSession. You can use this to store metadata whose meaning is entirely defined by your application.
Note that calling this method overwrites any metadata that had been previously set on this RoomSession.
Parameters
| Name | Type | Description |
|---|---|---|
meta | [Record][record-type]<string, unknown> | The metadata object to assign to the RoomSession. |
Returns
Promise<void>
Example
await roomSession.setMeta({ foo: "bar" });
setMicrophoneVolume
▸ setMicrophoneVolume(params): Promise<void>
⚠️ Deprecated. Use setInputVolume instead.
setMicrophoneVolumewill be removed in v4.0.0
Parameters
| Name | Type |
|---|---|
params | Object |
params.memberId | string |
params.volume | number |
Returns
Promise<void>
setOutputVolume
▸ setOutputVolume(params): Promise<void>
Sets the output volume for the member (e.g., the speaker output level).
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.volume | number | Desired volume. Values range from -50 to 50, with a default of 0. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.setOutputVolume({ memberId: id, volume: -10 });
setPositions
▸ setPositions(params): Promise<void>
Assigns a position in the layout for multiple members.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.positions | VideoPositions | Mapping of member IDs and positions to assign. |
Returns
Promise<void>
Example
await roomSession.setPositions({
positions: {
"1bf4d4fb-a3e4-4d46-80a8-3ebfdceb2a60": "reserved-1",
"e0c5be44-d6c7-438f-8cda-f859a1a0b1e7": "auto"
},
});
setPrioritizeHandraise
▸ setPrioritizeHandraise(params): Promise<boolean>
Set whether to prioritize hand-raise or not. Users with raised hands will be shown in the main video area over other participants who don't have their hand raised.
Parameters
| Name | Type | Description |
|---|---|---|
param | boolean | Whether to prioritize participants on the canvas with their hand-raised. Default: true. If omitted, the hand status is toggled to the opposite of the current status. |
Permissions
video.prioritize_handraise
You need to specify the permissions when creating the Video Room Token on the server side.
Returns
Promise<boolean>
Example
await room.setPrioritizeHandraise(false)
setRaisedHand
▸ setRaisedHand(params): Promise<void>
Sets the raised hand status for the current member.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
params.raised? | boolean | Whether to raise or lower the hand. Default: true. If omitted, the hand status is toggled to the opposite of the current status. |
Returns
Promise<void>
Permissions
video.member.raisehand: to raise a handvideo.member.lowerhand: to lower a hand
You need to specify the permissions when creating the Video Room Token on the server side.
Example
await room.setRaisedHand({
memberId: "de550c0c-3fac-4efd-b06f-b5b86...",
raised: false
});
setSpeakerVolume
▸ setSpeakerVolume(params): Promise<void>
⚠️ Deprecated. Use setOutputVolume instead.
setSpeakerVolumewill be removed in v4.0.0
Parameters
| Name | Type |
|---|---|
params | Object |
params.memberId | string |
params.volume | number |
Returns
Promise<void>
startRecording
▸ startRecording(): Promise<RoomSessionRecording> - See RoomSessionRecording for more details.
Starts the recording of the room. You can use the returned RoomSessionRecording object to control the recording (e.g., pause, resume, stop).
Returns
Promise<RoomSessionRecording> - See RoomSessionRecording for more details.
Example
const rec = await roomSession.startRecording();
await rec.stop();
startStream
▸ startStream(): Promise<RoomSessionStream> - See RoomSessionStream for more details.
Starts streaming the audio/video of this room to an external service. You can use the returned RoomSessionStream object to interact with the stream.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | |
params.url | string | RTMP or RTMPS url. This must be the address of a server accepting incoming RTMP/RTMPS streams. |
Returns
Promise<RoomSessionStream> - See RoomSessionStream for more details.
Example
const stream = await roomSession.startStream({ url: "rtmp://example.com" });
// Stop the stream after 60 seconds
setTimeout(() => stream.stop(), 60000);
subscribe
▸ subscribe(): Promise<RoomSessionFullState> - See RoomSessionFullState for more details.
Listens for the events for which you have provided event handlers and returns the RoomSessionFullState that contains the full state of the room session.
Note that you don't need to manually call this method to start listening to events, since they are listened automatically.
Returns
Promise<RoomSessionFullState> - See RoomSessionFullState for more details.
Example
const client = ... // get a client with createClient()
client.video.on('room.started', async (roomSession) => {
// attach event listeners...
// roomSession.on(...)
// This gives you the full state of the room session!
const roomSessionState = await roomSession.subscribe()
console.log('room name:', roomSessionState.name)
console.log('members:', roomSessionState.members)
}
undeaf
▸ undeaf(params): Promise<void>
Unmutes the incoming audio for a given member. The affected participant will start hearing audio from the other participants again.
Note that in addition to allowing a participants to hear the others, this will also automatically unmute the microphone of the target participant. If you want, you can then manually mute it by calling audioMute.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to affect. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.undeaf({ memberId: id });
updateMemberMeta
▸ updateMemberMeta(params): Promise<void>
Updates a member's metadata in only the specified fields. This is different from setMemberMeta, which replaces the whole metadata object.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId? | string | Id of the member to affect. If omitted, affects the current member. |
params.meta | [Record][record-type]<string, unknown> | The update to the metadata. |
Returns
Promise<void>
Example
roomSession.on("member.updated", (e) => {
// We can set an event listener to log changes to the metadata.
console.log(e.member.meta);
});
await roomSession.setMemberMeta({
memberId: "...",
meta: { foo: "bar", baz: true },
});
// The logger will now print `{ foo: "bar", baz: true }`
await roomSession.updateMemberMeta({
memberId: "...",
meta: { baz: false, t: 10 },
});
// The logger will now print `{ foo: "bar", baz: false, t: 10 }`
updateMeta
▸ updateMeta(meta): Promise<void>
Updates the RoomSession metadata by only setting the specified fields. This is different from setMeta, which replaces the whole metadata object.
Parameters
| Name | Type | Description |
|---|---|---|
meta | [Record][record-type]<string, unknown> | The update to the metadata. |
Returns
Promise<void>
Example
roomSession.on("room.updated", (e) => {
// We can set an event listener to log changes to the metadata.
console.log(e.room.meta);
});
await roomSession.setMeta({ foo: "bar", baz: true });
// The logger will now print `{ foo: "bar", baz: true }`
await roomSession.updateMeta({ baz: false, t: 10 });
// The logger will now print `{ foo: "bar", baz: false, t: 10 }`
unlock
▸ unlock(params): Promise<void>
Unlocks the room if it had been previously locked. This allows new participants to join the room.
Returns
Promise<void>
Example
await roomSession.unlock();
videoMute
▸ videoMute(params): Promise<void>
Puts the video of a given member on mute. Participants will see a mute image instead of the video stream.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to mute. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.videoMute({ memberId: id });
videoUnmute
▸ videoUnmute(params): Promise<void>
Unmutes the video of a given member if it had been previously muted. Participants will start seeing the video stream again.
Parameters
| Name | Type | Description |
|---|---|---|
params | Object | - |
params.memberId | string | Id of the member to unmute. |
Returns
Promise<void>
Example
const id = "de550c0c-3fac-4efd-b06f-b5b8614b8966"; // you can get this from getMembers()
await roomSession.videoUnmute({ memberId: id });
Events
You can use this object to subscribe to the following events.
Room events
- room.started,
- room.updated,
- room.ended:
Emitted when the room session is, respectively, started, updated, or ended. Your event handler receives an object which is an instance of RoomSession.
- recording.started,
- recording.updated,
- recording.ended:
Emitted when a recording is, respectively, started, updated, or ended. Your event handler receives an object which is an instance of RoomSessionRecording.
- playback.started,
- playback.updated,
- playback.ended:
Emitted when a playback is, respectively, started, updated, or ended. Your event handler receives an object which is an instance of RoomSessionPlayback.
- layout.changed:
Emitted when the layout of the room changes.
Member events
- member.joined:
Emitted when a member joins the room. Your event handler receives an object of type RoomSessionMember.
- member.left:
Emitted when a member leaves the room. Your event handler receives an object of type RoomSessionMember.
- member.talking:
Emitted when a member starts or stops talking. Your event handler receives an object of type RoomSessionMember.
- member.talking.started:
Emitted when a member starts talking. Your event handler receives an object of type RoomSessionMember.
- member.talking.ended:
Emitted when a member stops talking. Your event handler receives an object of type RoomSessionMember.
- member.updated:
Emitted when any property of one of the members is updated. Your event handler receives an object member of type RoomSessionMember. Use
member.updated to access the list of updated properties. Example:
roomSession.on('member.updated', (member) => {
console.log(member.updated)
// [ 'audioMuted' ]
}
- member.updated.audioMuted,
- member.updated.videoMuted,
- member.updated.deaf,
- member.updated.onHold,
- member.updated.visible,
- member.updated.inputVolume,
- member.updated.outputVolume,
- member.updated.inputSensitivity:
Each of the above events is emitted when the associated property changes. Your event handler receives an object member of type RoomSessionMember.
room.audience_count
• room.audience_count(e)
This event is received periodically, and contains a total count of audience members.
Audience members joining and leaving trigger this event.
Parameters
| Name | Type | Description |
|---|---|---|
e | Object | - |
e.room_session_id | string | Id of the room session. |
e.room_id | string | Id of the room. |
e.total | number | Total number of audience members. |
stream.ended
• stream.ended(stream)
A stream ended (e.g., it was stopped).
Parameters
| Name | Type |
|---|---|
stream | RoomSessionStream |
stream.started
• stream.started(stream)
A new stream started.
Parameters
| Name | Type |
|---|---|
stream | RoomSessionStream |