Skip to content

Releases: livekit/client-sdk-js

v0.18.3

26 Apr 07:44
2d80fa1
Compare
Choose a tag to compare

Features

  • pauseUpstream and resumeUpstream for scenarios in which you want to halt publishing, but the local MediaStreamTrack should continue playing #205
  • replaceTrack by providing a raw MediaStreamTrack #206

Changes

  • code gets compiled to es2019 in order to support webpack 4 #210

Bugfixes

  • Use pcState to keep track of connection lifecycle #207
  • Add type: module to package.json to hint to bundlers that we are providing es modules 64fce5c

v0.18.0

18 Apr 16:57
Compare
Choose a tag to compare

Features

  • setVolume method for remoteparticipants and remoteaudiotracks #180
  • setLogExtension for 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)
  • getLocalDevices now asks for user permissions by default (if not yet acquired) #184 #187
  • use a wildcard import for internal loglevel usage #183
  • structure log messages #190
  • setTrackEnabled, setMicrophoneEnabled, setCameraEnabled etc. now return their LocalTrackPublication #194
  • deprecate standalone connect function and ConnectOptions #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

29 Mar 23:21
Compare
Choose a tag to compare

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

  • Fixed connection resume #164
  • Disabled screenshare simulcast for Firefox #168 - Firefox does not support it
  • Allow listeners to be registered on LocalParticipant prior to connect #172
  • Improved protobuf generation to avoid protobuf/minimal import errors with certain environments #176

v0.17.0

09 Mar 07:52
Compare
Choose a tag to compare

Features

  • New (more) options for video presets #146
  • Support for custom simulcast layers (also for screen share) #146
  • New setting for pixelDensity when using adaptiveStream #147
  • Client configuration options #153
  • Pause video streams if tab is in background (enabled through the adaptiveStream setting) #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 StreamState to only be present on remoteTracks #161

Bugfixes

  • Several fixes around queueing signals while reconnecting #151 #162
  • Sample: disable buttons while muting/unmuting tracks #163

v0.16.6

11 Feb 21:51
Compare
Choose a tag to compare

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.StateChanged event that notifies you when Room.state has changed.

v0.16.1

30 Jan 06:55
Compare
Choose a tag to compare

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

16 Jan 18:53
Compare
Choose a tag to compare

What's Changed

Changes

  • createLocalTracks to default audio and video to true to match v0.14 behavior #124
  • add engine.getConnectedAddress for debugging #118

Bugfixes

  • fix getParticipantById to include local participant #116
  • Fix scaleResolutionDownBy going below 1 for tiny portrait source #122
  • Fixed being able to manually subscribe to LOW layer #125
  • Fix reconnect loop on Safari #126

v0.15.3

12 Jan 07:44
Compare
Choose a tag to compare

Changes in v0.15.3

Bugfixes

  • Fixes Unsubscribed event not firing after an initial unsubscribe 8587af6
  • Avoid duplicate event listeners #107
  • Correctly unpublish tracks after TrackEvent.Ended #110
  • Fix missing Room.Disconnect events when participant could not resume connection #114

Features

  • Supports participant name and track mime-type #108
  • Flexible permissions API #109
  • Sample app to support simulating server-side conditions #113

v0.15.1

03 Jan 19:37
Compare
Choose a tag to compare
  • Restore createLocalTracks for backwards compatibility #100
  • Support for Dynacast #102
  • Renamed autoManageVideos to adaptiveStream
  • Fixed data channel readiness check #101
  • getParticipantByIdentity #99
  • Room metadata is set on initial connect #98
  • Expose up/downstream bitrate used by tracks #103

v0.15.0

23 Dec 20:07
Compare
Choose a tag to compare

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