Features
- Added more control over how screenshares are sent. See the updated
updateSendSettings
documentation andstartScreenshare
documentation for more information.
Bugfixes
- Fixed handling of a case where a live-streaming-error is fired before the live stream starts.
- Fixed active speaker detection in p2p calls.
- As described in the README, with this release we've added a config flag to allow developers to opt into
v2CamAndMic
behaviour. Changes in this release which only apply to this new code path are all gathered below:- Makes it so that custom cam track constraints that were provided via
setBandwidth()
survive operations that require a call togetUserMedia
for a new camera track. - Handles
deviceID
values set tofalse
, such that thedeviceID
is stored correctly, the corresponding input is muted, and can not be unmuted unless the id is updated to something valid. - Now correctly removes the track when
deviceID
changes to false. - Fixed issues where noise cancelling could be delayed or could have audio glitches on a newly unmuted audio track.
- Fixed an issue where a processed track (e.g. background blur enabled) would not end properly when its source track ended, which could cause a frozen black frame.
- Added support for custom cam and mic source tracks in
v2CamAndMic
. - Added
v2CamAndMic
boolean flag (defaulting to false in 0.46.0) todailyConfig
to allow users to trial opting into this code path.
- Makes it so that custom cam track constraints that were provided via
Other improvements
- Added support for reading audio processor settings that were previously set on a given domain, for example, to automatically re-enable noise cancellation if it was previously selected.
- Improved logic for selecting alternate wss uris after having connection issues, adding capacity to store and immediately favor successful uris in future calls.
- Marked legacy participant track and track state fields as deprecated.
- Instead of the field on the left, use the field on the right:
audioTrack
->tracks.audio.persistentTrack
videoTrack
->tracks.video.persistentTrack
screenAudioTrack
->tracks.screenAudio.persistentTrack
screenVideoTrack
->tracks.screenVideo.persistentTrack
audio
->participant.tracks.audio.state
video
->participant.tracks.video.state
screen
->participant.tracks.screenVideo.state
- So for example, instead of
participant.audioTrack
, useparticipant.tracks.audio.persistentTrack
- See the participant
tracks
properties documentation for more information.
- Instead of the field on the left, use the field on the right: