Skip to main content
DailyTrackState describes the current condition of one media track — camera, microphone, screen share, or custom — from the local participant’s point of view. It appears as a value in DailyParticipant.tracks.

Properties

true | false | 'staged'
Whether the local participant is subscribed to this track. Only meaningful for remote participants — local tracks are always implicitly subscribed.
  • true — subscribed and receiving
  • false — not subscribed
  • 'staged' — SDP negotiated but no bytes are flowing; track can transition to playable faster when set to true
Set via updateParticipant() with setSubscribedTracks.
string
The complete, mutually exclusive state of the track from the local participant’s point of view.
object
Present when state is 'off'. Indicates why the track is off. All sub-fields are optional booleans.
object
Present when state is 'blocked'. Indicates why the track cannot be sent. All sub-fields are optional booleans.
MediaStreamTrack | undefined
The underlying MediaStreamTrack. Only present when state === 'playable'. Only available in call object mode.Prefer persistentTrack for attaching to media elements.
MediaStreamTrack | undefined
The underlying MediaStreamTrack. Present whenever a track exists, regardless of state. Only available in call object mode.Recommended over track as a proactive defense against black frames during call disruptions and browser limitations. Use track only when you need a guarantee that media is currently flowing.

See also