Skip to content

Releases: livekit/client-sdk-android

v2.12.1

24 Jan 07:57
f502243
Compare
Choose a tag to compare

Patch Changes

  • Fix documented default of preferredDeviceList in AudioSwitchHandler - #584 (@davidliu)

  • Allow access to participant field in ParticipantAttributesChanged event - #591 (@binkos)

v2.12.0

13 Jan 10:07
86d1432
Compare
Choose a tag to compare

Minor Changes

  • Explicitly expose AudioSwitchHandler from Room for easier audio handling - #579 (@davidliu)

  • Default prioritizing speaker over earpiece - #579 (@davidliu)

    • For those who want the previous behavior of earpiece being prioritized over the speakerphone, the preference order can be changed through room.audioSwitchHandler?.preferredDeviceList.
  • Implement RPC - #578 (@davidliu)

Patch Changes

  • Add publishDTMF method for Sending DTMF signals to SIP Participant - #576 (@dipak140)

v2.11.1

04 Jan 12:01
a7433b9
Compare
Choose a tag to compare

Patch Changes

  • Fix maxFps not applying for very low framerates - #573 (@davidliu)

v2.11.0

13 Dec 17:32
88e4c11
Compare
Choose a tag to compare

Minor Changes

  • Add use cases to CameraX createCameraProvider - #536 (@KasemJaffer)

  • Detect rotation for screenshare tracks - #552 (@davidliu)

  • Default to scaling and cropping camera output to fit desired dimensions - #558 (@davidliu)

    • This behavior may be turned off through the VideoCaptureParams.adaptOutputToDimensions
  • Add separate default capture/publish options for screenshare tracks - #552 (@davidliu)

Patch Changes

  • Add AudioPresets and increase default audio max bitrate to 48kbps - #551 (@davidliu)

  • Fix crash when setting publishing layers - #559 (@davidliu)

  • Added VideoFrameCapturer for pushing video frames directly - #538 (@davidliu)

  • Fix surface causing null pointer exception on some devices - #544 (@KasemJaffer)

  • Update Kotlin dependency to 1.9.25 - #552 (@davidliu)

v2.10.0

04 Nov 19:37
ad50c68
Compare
Choose a tag to compare

Minor Changes

Custom Audio

The 2.10.0 release adds support for custom audio. Audio can be mixed into the existing LocalAudioTrack by using LocalAudioTrack.setAudioBufferCallback. This callback will be passed the audio buffer, which can be modified to add in new custom audio (audio processing such as noise/echo cancellation should continue to use the Room.AudioProcessingController).

To aid in mixing custom audio, a helper class MixerAudioBufferCallback is provided, which will handle combining the custom audio with the microphone audio. To use, subclass the MixerAudioBufferCallback and override onBufferRequest to pass back the custom audio buffers when requested.

Screen Share Audio Capture

Along with the custom audio support, screen share audio capture is supported as well. We've implemented a ScreenAudioCapturer which will handle grabbing the audio during a screen share session. This can then be passed to LocalAudioTrack.setAudioBufferCallback to publish the audio.

val audioCapturer = ScreenAudioCapturer.createFromScreenShareTrack(screenCaptureTrack) ?: return
audioCapturer.gain = 0.2f // Adjust the volume as needed so that the microphone can still be heard.
audioTrack.setAudioBufferCallback(audioCapturer)

Foreground service

Note that on Android 14 onwards, a MICROPHONE foreground service is required to capture audio in the background, which will affect the screen capture audio.

Cleanup

When done with the screen capture, you should call releaseAudioResources on the capturer to avoid any memory leaks.

Example

Example code that publishes a screenshare with its audio can be found here.

v2.9.0

02 Oct 08:03
b285897
Compare
Choose a tag to compare

Minor Changes

  • Implement LocalAudioTrack.addSink to receive audio data from local mic - #516 (@davidliu)

  • Implement client metrics - #511 (@davidliu)

Patch Changes

v2.8.1

02 Sep 15:06
7a05872
Compare
Choose a tag to compare

Patch Changes

  • Fix local video tracks not rendering processed frames - #495 (@davidliu)

  • Add utility class NoDropVideoProcessor to force video processing while not connected - #495 (@davidliu)

  • More fixes for crashes caused by using disposed track - #497 (@davidliu)

v2.8.0

26 Aug 10:28
e4c307c
Compare
Choose a tag to compare

Minor Changes

  • Implement LocalTrackSubscribed event - #489 (@davidliu)

  • Add first and last received times to TranscriptionSegment - #485 (@davidliu)

Patch Changes

  • More guarding of rtc api usages to prevent crashes - #488 (@davidliu)

v2.7.1

21 Aug 05:26
3663152
Compare
Choose a tag to compare

Patch Changes

  • Noisily log when a VideoRenderer is used without initializing it first - #482 (@davidliu)

  • Fix NPE in RegionProvider when host can't be determined - #482 (@davidliu)

v2.7.0

09 Aug 07:33
10da8f9
Compare
Choose a tag to compare

What's Changed

  • Add support for participant attributes by @davidliu in #468
  • Support setting attributes from local participant by @davidliu in #470
  • Fix deadlock caused by multiple concurrent setCameraEnabled calls by @davidliu in #472
  • Add RoomEvent.ParticipantAttributesChanged by @davidliu in #473

Full Changelog: v2.6.0...v2.7.0