Releases: daily-co/react-native-daily-js
0.27.0
Bugfixes
- Added support for React Native 0.69 and up.
Other improvements
- Add TypeScript types for specifying custom video layout parameters in the
startRecording()
andstartLiveStreaming()
methods.
0.26.0
Features
- Added ability to configure high quality audio output. See new fields in the
dailyConfig
object included in the frame propertiesmicAudioMode
: defaults tonull
. 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 thegetUserMedia
call for the microphone track.
0.25.0
Features
- Added ability to add/remove rtmp endpoints for live streaming
- See the
endpoints
argument instartLiveStreaming
and the new methodsaddLiveStreamingEndpoints
andremoveLiveStreamingEndpoints
for more details.
- See the
- 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.
- See
startTranscription
for details on the new options available - See the new
startedBy
field intranscription-started
andupdatedBy
field intranscription-stopped
events
- See
- 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
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 adeviceId
as an argument that matches an id returned byenumerateDevices
.setAudioDevice()
sets the audio input/output device. It takes adeviceId
as an argument that matches an id returned byenumerateDevices
.- 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
Features
- 📉 Added types for new packet loss fields,
totalSendPacketLoss
andtotalRecvPacketLoss
, in thegetNetworkStats()
response
0.22.0
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
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'
- Methods:
- 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 ofreact-native-daily-js
, as support is introduced for methods likesetOutputDevice()
andsetInputDevicesAsync()
. 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'
- Methods:
- 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 upstreamreact-native-webrtc
project (whose release notes you can find here).
0.20.0
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
Bugfixes
- Android Only: Audio stops working in other apps after joining a daily meeting
0.18.0
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 streaminglayout
:{ "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
andrecording-stopped
forcloud-beta
recording. Allrecording-started
events will now include thetype
of recording started (ie."local"
,"cloud"
,"rtp-tracks"
,"output-byte-stream"
, or"cloud-beta"
). When thetype
iscloud-beta
orrtp-tracks
, therecording-started
event will also includestartedBy
with the participant id of the person who started the recording.cloud-beta
recordings will also include the samelayout
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 theDailyCallOptions
type - Beta (background blur): added better validation for the optional
config
object passed in as part ofprocessor
inupdateInputSettings
- Beta (background blur): changed the
strength
value from being anint
ranging from 0-10 to afloat
percentage value, ranging from 0-1. - Resolved an issue that would cause
cloud-beta
orrtp-tracks
recordings to stop ifstartRecording()
was called multiple times in the same session.