Skip to content

Releases: daily-co/react-native-daily-js

0.42.1

28 Apr 21:21
Compare
Choose a tag to compare

Bugfixes

  • Fixed an issue where simulcast encodings set within dailyConfig were not respected.

0.42.0

26 Apr 16:00
Compare
Choose a tag to compare

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.
  • 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

12 Apr 22:42
Compare
Choose a tag to compare

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 after load() (or startCamera(), or join()) that you had no processors specified, until the first input-settings-updated event fired. This could occur even if you specified one in the preload cache via a constructor argument, or a previous call to updateInputSettings().
  • 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 or error 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

30 Mar 21:48
Compare
Choose a tag to compare

Features

  • The event cpu-load-change has a new property cpuLoadStateReason, with possible values ENCODE, DECODE, SCHEDULE_DURATION, NONE, to describe why the event has been triggered. The method getCpuLoadStats() 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 invokes destroy(), whether or not they ever join()ed.
    There is one side effect of this change: now, after destroy() is run, the call object will always be left with meetingState() 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 and DailyCameraErrorObject 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 mark composition_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 in live-streaming-started events.

0.39.0

15 Mar 21:31
Compare
Choose a tag to compare

Bugfixes

  • Fixed TypeScript definitions for streaming layouts to remove composition_id from the object passed to the updateRecording() function (where it is not allowed), while keeping it in startRecording(), where composition_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

22 Feb 00:04
Compare
Choose a tag to compare

Features

  • Added a strictMode flag to cause daily-js to throw an Error 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 type string 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

25 Jan 23:48
Compare
Choose a tag to compare

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 and MUTE_REMOVE_VIDEO from non-owner participants.
  • Removed a long deprecated path to set the local owner flag.

0.35.0

06 Jan 15:25
Compare
Choose a tag to compare

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

16 Dec 21:28
Compare
Choose a tag to compare

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

30 Nov 14:55
Compare
Choose a tag to compare

Bugfixes

  • Fix a case where a warning log may throw an exception.