Releases: livekit/client-sdk-android
v2.3.0
What's Changed
- Add Room.setRoomOptions by @davidliu in #399
- Update webrtc to 114.5735.09 by @davidliu in #404
- Set access modifier by @newjins-papa in #402
- Add camera/mic service types to sample foreground service by @davidliu in #405
- Add some audio convenience functions by @davidliu in #408
- Add RoomEvent for local participant unpublish by @davidliu in #407
- Add capture options and video processor for screencast tracks by @davidliu in #410
- Update video capture defaults to 720p by @davidliu in #411
- Fix ConcurrentModificationException in RemoteVideoTrack by @davidliu in #413
Full Changelog: v2.2.0...v2.3.0
v2.2.0
What's Changed
LiveKit Android Mocks for Testing Library
The mocks we use for testing have been published under the artifact io.livekit:livekit-android-test
. These mocks allow for offline JVM unit testing, without the need for instrumented testing on an Android device. This is useful for unit testing your own code in a controlled environment.
For examples, see the existing mocked end-to-end tests within the livekit-android-test
folder.
Full Changelog: v2.1.1...v2.2.0
v2.1.1
What's Changed
- add foregroundServiceType for ForegroundService by @jossephus in #392
- Add FOREGROUND_SERVICE_MEDIA_PROJECTION permission needed for android 14 screen capture by @davidliu in #393
New Contributors
- @jossephus made their first contribution in #392
Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's Changed
- Fix memory leak caused by disconnecting before connect finished by @davidliu in #386
- feat: add external audio processing api. by @cloudwebrtc in #319
- Fix network request leak on pre-8.1 devices by @davidliu in #389
- Support authenticating audio processors by @davidliu in #390
- Sanitize response handling and clear out queued requests on disconnect by @davidliu in #387
Full Changelog: v2.0.1...v2.1.0
v2.0.1
What's Changed
- Selfie ML video processing examples by @davidliu in #378
- CommunicationWorkaround crash fix and global references leak by @Antonito in #379
- Allow injection of PeerConnectionFactory.Options by @davidliu in #382
- State checking and sync for comm workaround track by @davidliu in #383
New Contributors
Full Changelog: v2.0.0...v2.0.1
v1.6.5
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