Skip to content

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

0.27.0

29 Jul 17:54
Compare
Choose a tag to compare

Bugfixes

  • Added support for React Native 0.69 and up.

Other improvements

0.26.0

07 Jul 20:01
Compare
Choose a tag to compare

Features

  • Added ability to configure high quality audio output. See new fields in the dailyConfig object included in the frame properties
    • micAudioMode: defaults to null. set to "music" to increase the average bitrate of the microphone track to 256K.
    • userMediaAudioConstraints: allows you to pass in custom media track constraints for use in the getUserMedia call for the microphone track.

0.25.0

16 Jun 21:30
Compare
Choose a tag to compare

Features

  • Added ability to add/remove rtmp endpoints for live streaming
    • See the endpoints argument in startLiveStreaming and the new methods addLiveStreamingEndpoints and removeLiveStreamingEndpoints for more details.
  • Transcription Improvements: Added the ability to set the language and model for transcriptions as well as introduced new ‘who done it’ fields in the transcription started/stopped events.
  • Added support for newer versions of react-native: ≥ 0.67
  • Added support for setting CamSimulcastEncodings in frame properties

Other improvements

  • Updated installation instructions in README

0.24.0

17 May 18:30
Compare
Choose a tag to compare

Features

  • Added support for setting the fps of a live stream through the live streaming options
  • Added support for working with input/output devices in order to set them up and query them, so now you can build a device picker in react native!
    • enumerateDevices() returns a list of available video input devices, and audio devices. The data returned can be used to change the audio device or the camera that are currently in use.
    • getInputDevices() returns the camera and mic devices that are currently in use.
    • setCamera() sets the input camera device. It takes a deviceId as an argument that matches an id returned by enumerateDevices.
    • setAudioDevice() sets the audio input/output device. It takes a deviceId as an argument that matches an id returned by enumerateDevices.
    • The available-devices-updated event fires when a new device is available or when a device is removed, for instance when a wired (or bluetooth) headset is connected or disconnected.

Bugfixes

  • Fixed the check in the room() query so that it works and is available as soon as possible.

Other Improvements

  • Added support for Android 12

0.23.0

14 Apr 16:22
Compare
Choose a tag to compare

Features

  • 📉 Added types for new packet loss fields, totalSendPacketLoss and totalRecvPacketLoss, in the getNetworkStats() response

0.22.0

30 Mar 19:38
Compare
Choose a tag to compare

Features

  • 📦 Advanced: Override default video constraints that Daily uses when it calls getUserMedia() by providing a new DailyIframe property: userMediaVideoConstraints
const callObject = DailyIframe.createCallObject({
  url,
  dailyConfig: {
    userMediaVideoConstraints: { frameRate: 10 },
  },
});

userMediaVideoConstraints can be a MediaTrackConstraints object or true when used with react-native-daily-js.

0.21.0

16 Feb 00:27
Compare
Choose a tag to compare

Features

  • Server-side call recording is now supported in React Native. That means you can invoke startRecording() to begin a recording if your domain or room is configured with recording type 'cloud' or 'rtp-tracks'. Read more about recording Daily calls here. Here’s the full set of new methods and events:
    • Methods: startRecording(), updateRecording(), stopRecording()
    • Events: 'recording-started', 'recording-stopped', 'recording-stats', 'recording-error'
  • Pre-beta: a preview version of enumerateDevices() is now supported in React Native. Note that output devices are currently not yet listed. Expect the return value of this method to be tweaked in future versions of react-native-daily-js, as support is introduced for methods like setOutputDevice() and setInputDevicesAsync(). Sample output today, on iOS:
{
  "devices": [
    {
      "deviceId": "com.apple.avfoundation.avcapturedevice.built-in_video:0",
      "facing": "environment",
      "groupId": "",
      "kind": "videoinput",
      "label": "Back Camera"
    },
    {
      "deviceId": "com.apple.avfoundation.avcapturedevice.built-in_video:1",
      "facing": "front",
      "groupId": "",
      "kind": "videoinput",
      "label": "Front Camera"
    },
    {
      "deviceId": "com.apple.avfoundation.avcapturedevice.built-in_audio:0",
      "groupId": "",
      "kind": "audioinput",
      "label": "iPhone Microphone"
    }
  ]
}

Bugfixes

  • Remote media player APIs have been added to React Native TypeScript definitions:
    • Methods: startRemoteMediaPlayer(), stopRemoteMediaPlayer(), updateRemoteMediaPlayer()
    • Events: 'remote-media-player-started', 'remote-media-player-stopped', 'remote-media-player-updated'
  • If a remote (web) participant has specified a false input device either up-front (i.e. join({ url, audioSource: false })) or in the middle of a call (i.e. setInputDevicesAsync({ audioSource: false })), then the corresponding track state will now be reported as 'off' as if it were a normal user mute (i.e. setLocalAudio(false)):
callObject.participants()['some-id'].tracks.audio.state; // 'off'
callObject.participants()['some-id'].tracks.audio.off.byUser; // true

Prior to this change, participants would see remote tracks with no backing input source reported as permanently 'loading'.

Other improvements

  • We’re now using a newer version of @daily-co/react-native-webrtc, which is based on the latest-and-greatest version 1.94.1 of the upstream react-native-webrtc project (whose release notes you can find here).

0.20.0

18 Jan 18:53
Compare
Choose a tag to compare

Bugfixes

  • Fixed unhandled error for invalid URLs during bundle load

Other improvements

  • Updated type for app-message event payload to accept generic data type

0.19.0

20 Dec 16:05
Compare
Choose a tag to compare

Bugfixes

  • Android Only: Audio stops working in other apps after joining a daily meeting

0.18.0

28 Oct 17:45
Compare
Choose a tag to compare

Features

  • Introduced a new event, live-streaming-started that corresponds to when a live streaming has started for the call. The event payload optionally includes the streaming layout:

    {
      "action": "live-streaming-started",
      "layout": {} // see layout object in [startLiveStreaming](https://docs.daily.co/reference/daily-js/instance-methods/start-live-streaming)
    }
  • Beta (cloud recording): Added support for recording-started and recording-stopped for cloud-beta recording. All recording-started events will now include the type of recording started (ie. "local", "cloud", "rtp-tracks", "output-byte-stream", or "cloud-beta"). When the type is cloud-beta or rtp-tracks, the recording-started event will also include startedBy with the participant id of the person who started the recording. cloud-beta recordings will also include the same layout property as live streaming events.

    {
      "action": "recording-started",
      "callFrameId": "16149871051110.5607513282111183",
      "layout": { "preset": "default" }, // only for rtp-tracks recordings
      "local": true, // only present for local and cloud recordings if you started the recording
      "recordingId": "cab2be92-1551-42d8-bcdf-11fe7bd81923", // only for cloud recordings
      "startedBy": "1c6d5474-b133-4993-c943-f1ffdbb38cad", // the participant that started a cloud-beta or rtp-tracks recording
      "type": "cloud-beta" // or rtp-tracks, local, cloud, or output-byte-stream
    }

Bugfixes

  • added missing userName to the DailyCallOptions type
  • Beta (background blur): added better validation for the optional config object passed in as part of processor in updateInputSettings
  • Beta (background blur): changed the strength value from being an int ranging from 0-10 to a float percentage value, ranging from 0-1.
  • Resolved an issue that would cause cloud-beta or rtp-tracks recordings to stop if startRecording() was called multiple times in the same session.