participants()
participants()
Returns an object detailing the current meeting participants:
The object keys are local
for the local participant and the participant's session_id
for remote participants.
Participant properties
While there are some participant object properties specific to either the Daily Prebuilt or call object mode (more on that below), no matter how you're building with Daily, all participant objects include:
session_id
- a unique id generated each time a participant joins a meetinguser_id
- the user's id if set by a meeting token, otherwise thesession_id
user_name
- the user's name if set by a meeting token or set from the account if the user is logged into a Daily accountlocal
-true
for the local userowner
-true
if set by a meeting token or the user is logged into a Daily account and is a member of the room's teamjoined_at
- js Date object, the time that the user joined the roomvideo_width
andvideo_height
- the current width and height of the live video stream.video_width
andvideo_height
can change as network conditions change. If there is no current camera stream, this will be an empty object.record
- indicates whether a participant is recording a meeting usinglocal
oroutput-byte-stream
recording. This property will stayfalse
for everyone when usingcloud
orrtp-tracks
recording types. If you're building a custom UI, you probably want to monitor recording events instead of this property. (Note: Server-based recording (cloud
andrtp-tracks
) is a pay-as-you-go feature.)tracks
- an object whose keys are participant track types -audio
,video
,screenAudio
andscreenVideo
- and whose values are objects with detailed information about each track.
Participant tracks
properties
Key | Description | Possible values |
---|---|---|
subscribed | Whether you (the local participant) are subscribed to a track |
|
state | The values represent the complete set of mutually exclusive states a track can be in, from the user's point of view. |
|
off | If the track is off, why it's off (this field only acquires a value if the track is off). | An optional object with the properties byUser and/or byBandwidth , representing the possible reasons the track is off. |
blocked | If the track is blocked, why it's blocked (this field only acquires a value if the track is blocked). | An optional object with the properties byMissingDevice or byPermissions or byDeviceInUse representing the possible reasons the track is blocked. |
track * | *Only available when using the Daily call object. | A MediaStreamTrack that is ready to be played. |
persistentTrack * | *Only available when using the Daily call object. | A MediaStreamTrack that exists and may or may not be ready to be played. For now, we recommend persistentTrack over track as a proactive defense against black frames during call disruptions and any browser limitations. |
tracks in action
A note about the audio
, video
, and screen
properties
These three properties' boolean values indicate whether the corresponding audio, video, or screen track is available locally and ready to be sent.
However, when a track isn't yet available ("loading"), the value will briefly be false
.
We highly recommend skipping these properties and using the tracks
property's key for each kind of track instead for more accurate, detailed tracks state.
Call object-only participant properties
If you're building an app on top of the Daily call object, you might notice a few additional returned properties in the participants object.
A note about the audioTrack
, videoTrack
, and screenVideoTrack
properties in call object mode
These properties include the direct MediaStreamTrack that a participant is sending, if available.
While we detail these properties below, we recommend using the tracks
property's key for each kind of track instead for more accurate, detailed tracks state.
videoTrack
- the camera video track this participant is sending, if available.
audioTrack
- the microphone audio track this participant is sending, if available. Contains the same information asvideoTrack
, with only thekind
value differing in that it specifies "video".screenVideoTrack
: the screenshare video track this participant is sending, if available.