Releases: livekit/client-sdk-android
v2.0.0
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 toParticipant.trackPublications
.LocalParticipant.publishData
now uses participant identity as destinations instead of participant sids.Room.sid
may be null after connection. Please use the suspend functionRoom.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 useLiveKit.create
andRoom.connect
instead.Room.listener
- Please useRoom.events
instead.Participant.listener
- Please useParticipant.events
instead.- Certain
VideoPreset169
andVideoPreset43
members likeVGA
andHD
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
v1.6.3
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
v1.6.1
What's changed
- Allow registration of external cameras implementations by @jfilo-ebay in #345
New Contributors
- @jfilo-ebay made their first contribution in #345
Full Changelog: v1.6.0...v1.6.1
v1.6.0
v1.5.3
v1.5.2
v1.5.1
v1.5.0
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
- Changes for compose components livekit library by @davidliu in #282
- Expose camera utilities by @davidliu in #289
- Add connected room event by @davidliu in #290
- Add ability to disable audio RED by @davidliu in #291
- Fix bluetooth sco not stopping after room disconnect by @davidliu in #294
- Default to software codecs for vp9 by @davidliu in #300
- Fix memory leaks by @davidliu in #306
- Fix track disposal crashing on disconnect by @davidliu in #307
- SVC Codec support by @davidliu in #304
- Put back composables for now by @davidliu in #308
- Add EglBase to LiveKitOverrides by @davidliu in #310
- Guard against malformed server response and fix server codec handling by @davidliu in #312
- Fix: Sometimes, the reconnection logic can hang on a flaky internet connection. by @dshkil in #301
New Contributors
Full Changelog: v1.4.2...v1.5.0