Releases: daily-co/daily-js
0.66.0
Bugfixes
- Fixed an issue where the call machine was not loading inside webviews on iOS 16.
- Improved handling of an underlying Chrome bug with regards to screensharing. We have witnessed issues when sharing a tab with audio on Chrome where the audio track will end when switching which tab is shared using Chromeβs built-in βShare this tab insteadβ button. Previously, when this happened we would end the screenshare. Now, we will send a
nonfatal-error
(see example below) but will not end the screenshare so that video can continue. However, a user will have to restart the screenshare in order to recover audio. We have filed an issue with Chromium.{ "action": "nonfatal-error", "type": "screen-share-error", "errorMsg": "Error with ScreenShare audio", "details": { "sourceError": "audio track ended unexpectedly" } }
0.65.0
Features
- Providing an easy way to cycle the camera between front and back on mobile browsers:
cycleCamera({ preferDifferentFacingMode: true })
enumerateDevices()
andgetInputDevices()
now return a new property,facing
, specifying if the camera is facing theuser
or theenvironment
;- Created a new event ,
dialin-ready
, which is triggered when the sip dial-in worker is ready to accept a call. - Added support for updating the receive settings for custom tracks.
Bugfixes
- Fixed an issue preventing participants from joining meetings on certain browsers/hardware when WebGL 2 was unavailable. We are now disabling video processor in case
webgl2
is not available. - Fixed
updateScreenShare
to work with Daily Prebuilt iframe.
Other improvements
- Updated dependencies to remove security vulnerabilities.
- Removed long deprecated call property:Β
experimentalGetUserMediaConstraintsModify
0.64.0
Features
- Introduced the ability to disable sharing audio or video from a screenShare without stopping the screenShare via a new method,
updateScreenShare
. As part of this, we also introducedlocalScreenAudio()
andlocalScreenVideo
for checking if local video screen sharing is enabled. - Introduced a new domain/room property:
enforce_unique_user_ids
. Setting this totrue
along with usage of setting user_idβs on tokens will enforce that only one participant with a given user_id can be in a call at once, securing against token sharing. Note: If someone joins with an id already in use, they will be allowed in and the existing participant will be ejected, receiving anerror
event of a type'ejected'
.
Bugfixes
- Fixed an issue preventing participants from joining meetings on certain browsers/hardware when WebGL was unavailable.
0.63.0
KNOWN ISSUE
This release has a known issue where the bundle will not load on certain browsers and hardware when WebGL is disabled. We recommend skipping this release and using 0.64.0 or newer.
Features
- Added the ability to detect the number of faces that appear in a camera stream. To use this, set
"face-detection"
as a the video processor type when callingupdateInputSettings()
. When a face is detected aface-counts-updated
event is emitted.
Bugfixes
- Fixed issue on windows causing the mic to be blocked when the camera is blocked due to being in use by another application.
- Preventing error on join if audio level is started before starting the camera.
- Fixed cleanup of internals on
destroy()
resulting in memory bloat for subsequent instances. - Fixed an issue when videoSource is set to false or canSend permissions are set to ['audio'] and the browser permission request for the microphone is denied, then two camera-error events are emitted.
Other improvements
- Updated dependencies to remove security vulnerabilities.
- Updated what information is sent to Sentry when clients have networking issues.
0.62.0
Features
- Updated the list of oldest supported browsers and fixed all the issues that currently broken them. The new set of oldest browsers we support can be found here. Mostly notably, this means we no longer support Plan B browsers.
Bugfixes
- Fixed an issue with adaptive bitrate where, in certain situation, the resolution scale was not increasing.
- Fixed an issue with logs missing client information and reporting the daily-js version as 0.0.0.
- updated
updateInputSettings()
so that it does not result in a validation failure if provided options resulting in a no-op. (ex. turning on noise cancellation when itβs already on) - Fixed a bug where if the call machine bundle file initially fails to load, but then succeeds, you are still left in a broken state
Other improvements
- Added a new field,
cpuUsageBasedOnTargetDecode
, to thecpuInboundVideoStats
included in the response ofgetCpuLoadStats()
- Updated dependencies to remove security vulnerabilities.
- Downgraded the multiple call object console error to a console warning.
- Re-introduced official support for providing a
mediaStream
instartScreenShare()
. Initially, this was deprecated to discourage use of screenshares for the purpose of custom tracks. Note that for most use cases, we still recommend usingstartScreenShare()
without amediaStream
and the custom tracks API for sharing additional tracks.
0.61.1
Bugfixes
- Fixed a crash inΒ
updateInputSettings()
Β when called afterΒload()
Β but before an initializing call toΒstartCamera()
,ΒpreAuth()
, orΒjoin()
. - Fixed a bug on Android Web where unplugging a headset will sometimes break audio output.
- Fixed a bug on Android Web to properly auto-switch to a recently-plugged in device.
Other improvements
- We now log
frameRate
,width
, andheight
from the camera's video track whenever we first get the track or the user switches devices. - Updated TypeScript declaration file to make it so that event objects in event handlers don't erroneously appear to customers to be possibly
undefined
. - Added ability to detect and logΒ autoplay errors.
- Updated
daily-js
dependencies to close vulnerabilities.
0.60.0
Features
- Added ability to set a name on dialOut participants. See
displayName
in `startDialOut() docs
Bugfixes
- Re-introduced support support for providing base64 data urls for background images in
updateInputSettings()
Other improvements
-
Implemented a new
forceDiscardTrack
option forsetLocalAudio(false)
. This option will enforce daily to discard the track along with muting the mic. Doing so will have the effect of turning off mic-in-use indicators. While this sounds ideal, this flag should be used cautiously. By default, we do not discard the microphone track because unmuting would require re-fetching the track and introduce a delay that likely clips the start of someone talking. To use, simply callsetLocalAudio
like so:setLocalAudio(false, { forceDiscardTrack: true })
-
Updated audio settings in SFU mode to enable Opus FEC (forward error correction) by default.
-
Removed unnecessary messaging and stored set of objects related to registering/de-registering daily event callbacks.
-
Added includeRawResponse field to startTranscription() options. If true, all incoming transcription-message events will include a new rawResponse field with Deepgram's raw data. See docs here
0.59.0
Bugfixes
- Re-enabled audio output device selection for newer Firefox versions, where an echo cancellation bug was resolved.
- Fixed
testConnectionQuality()
result when stopping immediately after starting the test.
Other improvements
- For HIPAA domains, allow
user_id
s to appear in logs and the/meetings
REST API endpoint, if and only if theyβre UUIDs.
0.58.0
Features
- Introduced support for multiple outbound calls from a single room.
- Developed a new method,
sendDTMF
, for transmitting DTMF signals. - Introduced support for adaptive bitrate layers. This will improve the visual call quality by utilizing an adaptive bitrate and resolution strategy for the topmost SFU layer.
- Implemented live captions feature within Prebuilt.
Bugfixes
- Fixed the types returned from
testPeerToPeerCallQuality
to align with the newtestCallQuality
while making sure the now-deprecatedtestConnectionQuality
types remain unchanged and backwards compatible. - Fixed the
testConnectionQuality
issue on Firefox. - Fixed an issue where certain logs that weren't supposed to log when
terse_logging
is turned on were still logging. - Fixed an issue where
raw-tracks
was not closing recording after maxDuration. - Fixed cam and mic button states when the video or audio processor fails to start during an unmute.
- Fixed an issue where Prebuilt would get an undefined error when
useLegacyVideoProcessor
was not defined. - Resolved instances leading to "Cannot read properties of null (reading 'typeName').β
- Updated
localAudio()
/localVideo()
to use supported track states.
Other improvements
- Added more logs to the set of logs that are omitted when terse logging is on.
- Reducing
daily-js
bundle size. - SFU is now the default call mode for all call. You can change this behavior by setting
sfu_switchover
on your domain or room.
0.57.4
Bugfixes
- Fixed a bug breaking programmatically-triggered background blur and background images in iframe mode.