Releases: daily-co/react-native-daily-js
Releases · daily-co/react-native-daily-js
0.42.1
Bugfixes
- Fixed an issue where simulcast encodings set within
dailyConfig
were not respected.
0.42.0
Features
- Updated our default simulcast settings and provided new methods to read and modify simulcast settings within a call. We provide two presets which match most needs,
'bandwidth-optimized'
and'quality-optimized'
, but you can specify custom settings as well for advanced usage. Documentation will be published soon after release.- Related to the above work, we have changed the default send resolution when using daily-js in mobile browsers:
- Android: before the resolution was 720x1280. Now, the default resolution is 360x640.
- iOS: before the resolution was 480x640. Now, the default resolution is 360x640.
- iPads now use mobile resolution and layer defaults. Previously, some iPads were using defaults intended for desktops.
- Related to the above work, we have changed the default send resolution when using daily-js in mobile browsers:
- Added participant selection for recording and streaming layouts.
Bugfixes
- Fixed an issue where publishing encodings weren't always respected on React Native for Android.
- Fixed an issue where a websocket error would be logged after leaving a call using React Native for Android.
Other improvements
- Improved the behavior of recordings when a meeting is moved from one SFU to another, e.g. due to a networking issue or a new version of the server being deployed. A recording error is now thrown in those cases, allowing developers or end users to restart the recording or otherwise respond.
- Improved handling of call logs during disconnect to ensure logs are properly flushed during a disconnect.
0.41.0
Features
- Daily JS now allows HIPAA organizations to use raw tracks recordings.
Bugfixes
- Fixed an issue where calculation of CPU metrics could throw an error on react native.
- Fixed a bug where
getInputSettings()
could erroneously report afterload()
(orstartCamera()
, orjoin()
) that you had no processors specified, until the firstinput-settings-updated
event fired. This could occur even if you specified one in the preload cache via a constructor argument, or a previous call toupdateInputSettings()
. - Fixed an issue where a non-default device could be selected automatically as though it were the default.
- Fixed an issue where leaving soon after joining could result in
attempt to send to closed socket
orerror connecting to the sfu
errors to be logged. - Fixed a longstanding issue where back-to-back
available-devices-updated
events (with identical payloads) would fire in the case of a combination input/output device (i.e. a headset) being plugged in or unplugged. - Fixed some out of date type definitions for
DailyInputVideoSettings
. - Fixed
DailyEventObjectFatalError
types to resolve correctly in typescript codebases.
Other improvements
- Updated several libraries with security issues reported by npm audit to versions without reported vulnerabilities.
- Improved device detection code to use
devicechange
event wherever available rather than polling.
0.40.0
Features
- The event
cpu-load-change
has a new propertycpuLoadStateReason
, with possible valuesENCODE, DECODE, SCHEDULE_DURATION, NONE
, to describe why the event has been triggered. The methodgetCpuLoadStats()
also has multiple new properties.
Bugfixes
- Fixed a small typo in the React Native Typescript definitions.
- Fixed an issue with default audio output change detection, as well as an issue where the device returned by
call.getInputDevices().speaker
would often be a microphone. - Fixed a problem where setInterval() intervals that the call object starts are never cleaned up if the user doesn't end up
join()
ing a call first. Intervals should be cleaned up when the user invokesdestroy()
, whether or not they everjoin()
ed.
There is one side effect of this change: now, afterdestroy()
is run, the call object will always be left withmeetingState()
as either'left-meeting'
or'error'
, whereas previously the call object could also be left in a number of other states. - Fixed an issue where if you join a meeting with mic on, your audio sometimes doesn't play for the other person.
- Fixed the
DailyEventObjectCameraError
andDailyCameraErrorObject
type definitions to resolve to their defined camera error types, allowing developers to handle the different types of camera errors ergonomically in a TypeScript codebase. - Fixed an issue in our TypeScript definitions of custom layout properties passed to
startRecording()
/startLiveStreaming()
, to markcomposition_id
as optional. - Fixed an issue where, in P2P mode, toggling the camera off and back on would disable background effects.
Other improvements
- Increased the number of internal call quality statistics we record, for example the number of pauses and freezes in a video track or audio track.
- Made some meeting errors in connection failure cases more informative.
- Made a change to ensure that
instanceid
should always be included inlive-streaming-started
events.
0.39.0
Bugfixes
- Fixed TypeScript definitions for streaming layouts to remove
composition_id
from the object passed to theupdateRecording()
function (where it is not allowed), while keeping it instartRecording()
, wherecomposition_id
is required.
Improvements
- Updated mediasoup-client to version 3.6.80, which among other things, adds unified plan support for React Native, allowing our library to update react-native-webrtc to 106.0.6.
- Updated react-native-webrtc to 106.0.6, which drops support for Plan B and adds support for Unified Plan in react-native-daily-js. Caution: As a consequence of the above, be careful not to use this version of react-native-webrtc with any earlier versions of react-native-daily-js, or any earlier versions of react-native-webrtc with this version of react-native-daily-js, as they will not be able to communicate.
0.38.0
Features
- Added a
strictMode
flag to cause daily-js to throw anError
if more than one call-object is detected in use, before this behavior becomes the default beginning in react-native-daily-js 0.41.0 - Added a
getCallInstance()
method, which can get a handle to your call instance from anywhere in case you lost track of it. - Added a new
type
field to track events, which can be any of'video'
,'audio'
,'screenVideo'
,'screenAudio'
,'rmpVideo'
,'rmpAudio'
, or other values of typestring
for custom tracks - Livestreams can now emit update events, including for errors and interruptions.
Bugfixes
- Fixed an issue where background setting and camera stream changes at the same time could conflict, and cause errors
- Fixed an issue where background settings could not be applied if the camera had never been enabled
- Fixed an issue where
403 Forbidden
could be hit while downloading daily-js components if accessed during new code deployments
0.36.0
Bugfixes
- Fixed a bug where an error could be thrown accessing an undefined object when unmuting while a device is not found.
- Fixed an issue where one blocked device being blocked could cause both devices to appear as blocked.
- Fixed an issue where a blocked device could appear to have a (blank) track, and be unmuted.
- Updated TypeScript definitions for
DailyTrackSubscriptionOptions
Other improvements
- Reduced the memory footprint of video processor
URL
object once they’re no longer needed. - Improved prevention of
MUTE_REMOTE_AUDIO
andMUTE_REMOVE_VIDEO
from non-owner participants. - Removed a long deprecated path to set the local
owner
flag.
0.35.0
Improvements
- Added new error types for issues while knocking for entry to a room.
Bugfixes
- Fixed an issue where an error could be thrown while formatting a number used in a telemetry calculation.
0.34.0
Features
- Improved logging to include pre-join logs and added new logs for identifying cases when we detect multiple daily instances are connected simultaneously (multiple daily instances is unsupported and leads to unexpected issues).
- Added server-side support for properly detecting and warning clients when they are using a version that is nearing end of support, unsupported or nearing end of life as well as a means to reject a client from joining if using a version that is end of life’d.
Bugfixes
- Bumped the version of react-native-webrtc to get various fixes for Samsung devices.
0.33.1
Bugfixes
- Fix a case where a warning log may throw an exception.