Releases: livekit/client-sdk-js
v0.18.0
Features
setVolumemethod for remoteparticipants and remoteaudiotracks #180setLogExtensionfor hooking into the livekit internal logger (e.g. sending livekit-logs to a third party service) #186
Changes
- example app: current location is preserved when setting url parameters #178 (thanks @bekriebel)
getLocalDevicesnow asks for user permissions by default (if not yet acquired) #184 #187- use a wildcard import for internal
loglevelusage #183 - structure log messages #190
setTrackEnabled,setMicrophoneEnabled,setCameraEnabledetc. now return theirLocalTrackPublication#194- deprecate standalone
connectfunction andConnectOptions#195 - bundle library using rollup #198
- don't use dynamic import for webrtc-adapter #199
Bugfixes
- safari black video fixes #182 #200
- fire connected event only after room object has been populated #185
- check for navigator.mediaDevices before detaching event handler #191 (thanks @caiiiycuk)
v0.17.5
Features
- Support for remote unpublish - ability for server to request client to unpublish a track #170
- Exposes participant permissions to clients #170
- Preparations to support React Native #167 #173
Changes
- Increased default screenshare resolution and framerate #165
- Adaptive stream to not pause video when tab is backgrounded on desktop #164
Bugfixes
v0.17.0
Features
- New (more) options for video presets #146
- Support for custom simulcast layers (also for screen share) #146
- New setting for
pixelDensitywhen usingadaptiveStream#147 - Client configuration options #153
- Pause video streams if tab is in background (enabled through the
adaptiveStreamsetting) #159
Changes
- Deprecated previous set of video presets #146
- Simulcast enabled by default for screen share #156
- Improve mobile browser handling when switching between apps #159
- Move
StreamStateto only be present onremoteTracks#161
Bugfixes
v0.16.6
Type-safe events
Our event callbacks are now typed. This means you'll receive typescript compiler warnings if an incompatible type is used as the callback. This doesn't alter existing behavior of the events, but may trigger warnings in your IDE if the wrong types were used previously.
Bugfixes & Improvements
- Update remote video size when attached to in the background #136
- Workaround for Safari 15 video rendering bug #137
- Published quality improves after bandwidth limitation is no longer in place #142
- Queue up signal events while reconnecting #140
RoomEvent.StateChangedevent that notifies you whenRoom.statehas changed.
v0.16.1
Changes
- Restart connection with minimal disruption when session cannot be resumed #132
- Use refreshed access tokens provided by the server #131
- Handle high latency link by increasing ICE timeout #128
- Fixed adaptive stream with duplicated attachments (#135)
- Fixed adaptive stream missing element size changes while invisible (#135)
- Support for protocol 6
v0.15.4
v0.15.3
v0.15.1
v0.15.0
Room-before-connect API
In the initial version of LiveKit, it was not possible to create a Room object before it's fully connected. That design decision made it impossible to attach event listeners onto the Room before it was connected. The new API looks like this:
const room = new Room(opts?: RoomOptions)
// attach listeners
room.on(...)
await room.connect(url: string, token: string, opts?: RoomConnectOptions)Top level connect will still be supported for backwards compatibility. Several functions have been moved as well:
createLocalTracks-> LocalParticipant.createTrackscreateLocalVideoTrack-> LocalParticipant.createTracks({video: true})createLocalAudioTrack-> LocalParticipant.createTracks({audio: true})createLocalScreenTracks-> LocalParticipant.createScreenTracks
Other changes
- Improved resize auto-management, reducing visible delay #84
- Participant is passed as argument to
RoomEvent.ParticipantMetadataChanged#86 - Explicitly send video layers in use to SFU #85
- Ability to unpublish tracks without stopping them #87
- Improve bitrate & publishing defaults #89
- Improved sample app #90 #94
v0.14.3 - automatic track management
Automatic quality management
The SDK could now automatically control the quality of video tracks it's subscribing to match the UI elements they are attached to. It will also perform visibility detection on elements and pause video subscriptions when they are not visible. This improvement drastically improves the number of tracks clients can subscribe to and reduces bandwidth requirements.
Other changes
- Screen share audio is a track source #71
- Fix multiple tracks of the same source being published 1c6b68f
- Option to keep local tracks to keep running after disconnection #79
Thanks to @lukasIO for proposing and contributing the improvements