Skip to content

Releases: livekit/client-sdk-android

v2.0.0

03 Feb 07:39
223aea2
Compare
Choose a tag to compare

Breaking Changes

There are several breaking changes between v1 and v2. Please consult our migration guide when upgrading to v2.

  • Room.remoteParticipants is now keyed by participant identity.
  • Participant.tracks and other similar methods/members are renamed to Participant.trackPublications.
  • LocalParticipant.publishData now uses participant identity as destinations instead of participant sids.
  • Room.sid may be null after connection. Please use the suspend function Room.getSid() to get the actual value when populated.
  • io.livekit.android.room.track.VideoQuality has been added to omit certain values that didn't make sense for users.

Removal of deprecated APIs

  • LiveKit.connect - Please use LiveKit.create and Room.connect instead.
  • Room.listener - Please use Room.events instead.
  • Participant.listener - Please use Participant.events instead.
  • Certain VideoPreset169 and VideoPreset43 members like VGA and HD have been removed.
  • DeviceManager - This class was previously unused and didn't have any effect within the SDK.

Renaming of org.webrtc package to livekit.org.webrtc

We've renamed the org.webrtc package we use internally to livekit.org.webrtc, in order to avoid any collision
with other WebRTC implementations. If your code references this package, you'll need to change the import like so:

// v1
import org.webrtc.*

// v2
import livekit.org.webrtc.*

Moved composables into a separate package

Composables such as VideoRenderer have been moved into a separate package, components-android. Previously
the SDK depended on Jetpack Compose, causing View-based apps to depend on an unnecessary package. These composables
have been split off into a separate package so only Compose-based apps will need to depend on it.

To migrate, add in your build.gradle:

dependencies {
  implementation "io.livekit:livekit-android-compose-components:1.0.0"
}

The VideoRenderer composable has also been renamed to VideoTrackView to maintain parity with other platforms.

Participant.Sid and Identity inline value classes

To avoid confusion between participant sid and identity which shared the String type, we've added the
Participant.Sid and Participant.Identity inline value classes. This will prevent inadvertantly using
one in place of the other.

Other changes

  • Don't emit RoomEvent.Reconnecting for resumes by @davidliu in (#371)
  • Support sync stream id by @davidliu in a42a47a
    • Stream ids allow for better synchronization among tracks with the same stream id. By default, the microphone and camera share a stream id.

Full Changelog: v1.6.0...v2.0.0

v1.6.4

30 Jan 03:59
Compare
Choose a tag to compare

What's Changed

  • Fix crash when multiple sinks attached to single video track by @davidliu in #366

Full Changelog: v1.6.3...v1.6.4

v1.6.3

25 Jan 10:54
Compare
Choose a tag to compare

What's Changed

We've identified an unexpected behavior on Android 11+ devices that may reset AudioManager.mode to normal. This may unexpectedly result in being unable to change the volume properly. To workaround this, we now play a silent audio track while no remote audio tracks are playing. If you would like to disable the workaround, you can disable it when creating the Room object:

LiveKit.create(
    appContext = context,
    overrides = LiveKitOverrides(
        audioOptions = AudioOptions(disableCommunicationModeWorkaround = false)
    )
)

Note that this workaround is only used for Android 11+ and when the audio mode is set to MODE_IN_COMMUNICATION.

Full Changelog: v1.6.2...v1.6.3

v1.6.2

18 Jan 15:20
Compare
Choose a tag to compare

What's Changed

  • Fix restartTrack causing crash on disconnect by @davidliu in #361

Full Changelog: v1.6.1...v1.6.2

v1.6.1

17 Jan 14:10
Compare
Choose a tag to compare

What's changed

  • Allow registration of external cameras implementations by @jfilo-ebay in #345

New Contributors

Full Changelog: v1.6.0...v1.6.1

v1.6.0

07 Jan 12:21
0c8b56f
Compare
Choose a tag to compare

What's Changed

  • Force webrtc method calls onto a single thread by @davidliu in #342
  • Remove RoomOptions from Room.connect by @davidliu in #346
  • Use audio source VOICE_COMMUNICATION for echo cancelling by @davidliu in #351

Full Changelog: v1.5.3...v1.6.0

v1.5.3

28 Nov 05:46
4199655
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.5.2...v1.5.3

v1.5.2

21 Nov 13:46
4719724
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.5.1...v1.5.2

v1.5.1

14 Nov 04:40
52010b3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.5.0...v1.5.1

v1.5.0

07 Nov 06:29
Compare
Choose a tag to compare

SVC and Multi-Codec support

Support for SVC codecs (VP9 and AV1) have been implemented. These can be used by specifying the videoCodec and scalabilityMode on the room's VideoTrackPublishDefaults or when manually publishing by passing VideoTrackPublishOptions.

If scalabilityMode is not specified for an SVC codec, a default of L3T3_KEY is used.

In addition to this change, multi-codec support has been added. Since not all clients are capable of decoding AV1/VP9, a backup codec can be specified for use when a client lacking SVC decoders requests to subscribe to a video stream. This corresponds to the backupCodec parameter on the video publishing options. By default, a backup VP8 codec is added for SVC tracks.

What's Changed

New Contributors

Full Changelog: v1.4.2...v1.5.0