Features
- The DailyParticipant type—the one populating the
participants()
dictionary as well as participant event payloads—now contains more detailed track state in a new tracks property, enabling you to build more expressive call UI. See below for the shape of this new property. For a more detailed description, check out our reference docs. For an example of how to use these new properties, check out our React demo app.
tracks: {
audio: {
subscribed: boolean;
state:
| 'blocked'
| 'off'
| 'sendable'
| 'loading'
| 'interrupted'
| 'playable';
blocked?: {
byDeviceMissing?: boolean;
byPermissions?: boolean;
};
off?: {
byUser?: boolean;
byBandwidth?: boolean;
};
track?: MediaStreamTrack;
};
video: { /* same */ };
screenAudio: { /* same */ };
screenVideo: { /* same */ };
}
- Programmatic control in iframe mode over whether your local video is displayed in the corner, with a setter (
setShowLocalVideo()
), a getter (showLocalVideo()
), and a property to pass into factory methods or at meeting join time (showLocalVideo
). - Programmatic control in iframe mode over whether the participants bar (the row of videos during a screenshare) is displayed, with a setter (
setShowParticipantsBar()
), a getter (showParticipantsBar()
), and a property to pass into factory methods or at meeting join time (showParticipantsBar
). - New method
setUserName()
for programmatically setting the user name that other participants see either visually in the prebuilt UI or through theuser_name
property in theDailyParticipant
object corresponding to you.
Bugfixes
- When leaving an iframe-based meeting by clicking the leave button in the iframe, stale participants from that meeting would "linger" in
participants()
, necessitating the creation of a newDailyIframe
for a new meeting. This has been fixed.
Other improvements
- TypeScript declaration fixes for
track-started
andtrack-stopped
events. - TypeScript declaration update to add
screenAudio
subscription option. - TypeScript declaration fixes wherever CSS properties are expected.