- fix: Fixed speaker cannot be switched on iOS. (#617)
- feat: Increase default audio bitrate. (#616)
- Fix TrackStreamStateUpdatedEvent not emitted. (#612)
- feat: support bypass voice processing. (#595)
- fix: Dispose LocalParticipant when room.disconnect. (#609)
- Fix spelling error in method name: _checkPremissions to _checkPermissions (#605)
- fix: fix speaker switching behavior for android. (#604)
- fix: Optimize stats display (#602)
- fix: Handle disconnect reasons correctly. (#594)
- fix: android build failure. (#587)
- Update README.md for Android Screenshare (#583)
- upgrade flutter-webrtc to 0.11.7
- upgrade web to 1.0.0
- feat: Add timestamps to TranscriptionSegment. (#577)
- feat: Prepare connection/region pinning. (#574)
- fix bug for PlatformView on iOS (#570)
- Deprecated
connectOptions
inRoom
constructor. - Deprecated
roomOptions
introom.connect
. - Added
screenShareEncoding
forVideoPublishOptions
. - Change
CameraCaptureOptions.params.encoding
to optional. It is recommended to useVideoPublishOptions.videoEncoding/screenShareEncoding
to control the video sending bitrate.
- add PlatformView for iOS (#509)
- update lints to 4.0.0. (#563)
- feat: expose DegradationPreference for publish options. (#556)
- fix room.disconnect issue. (#559)
- fix: use getSettings() to get actual dimensions for mobile (#560)
- Add support for participant attributes (#558)
- fix: fix crash for windows
- feat: bump version for flutter-webrtc.
- fix: ratchet on a single frame until ratchetWindowSize (#544)
- fix: fix mediaStreamTrack.getSettings() on Flutter Web.
- feat: add Transcription Event. (#531)
- feat: Expose Participant.Kind. (#532)
- fix: ignore unable to parse frames completely (#530)
- Framecryptor decrypting fixes (#520)
- feat: add voiceIsolation support (#523)
- fix: audio session control for ios.
fix: audio devcie ids consistency (#513) feat: provide option to skip stop/restartTrack for mute/unmute (#516)
- bump version of flutter-webrtc with privacy manifest files
- upgrade to connectivity plus 6.x.
- bump dart_webrtc to 1.4.3.
- fix: Expose keyRingSize/discardFrameWhenCryptorNotReady parameters for KeyProvider
- update to package:web (#484)
- feat: add keyRingSize/discardFrameWhenCryptorNotReady to KeyProviderOptions. (#493)
- Fix: bug for sync state (#491)
- Read capabilities from RtcRTPReceiver instead of from sender. (#488)
- Update screenshare logic for svc publishing (#487)
- Prevent screen-sharing on flutter web mobile. (#486)
- feat: add setKey variant, setRawKey (#482)
- Add Android 14 media projection perm to docs (#470)
- fix package of MainActivity.kt (#472)
- Fix: Remember last settings for republish all tracks (full-reconnect). (#475)
- Fix: Add screenshareAudioEnabled method (#473)
- Fix: use latest key index for new rtp nodes (#476)
- bug fix for sync streams.
There are several breaking changes between v1 and v2. Please consult our migration guide when upgrading to v2.
Room.participants
was renamed toRoom.remoteParticipants
Room.{audio/video}Tracks
was renamed toRoom.{audio/video}TrackPublications
LocalParticipant.publishData
now uses participant identity as destinations instead of participant sids.Room.sid
now changed toawait room.getSid();
.- Removed
VideoQuality.OFF
fromVideoQuality
enum.
LiveKitClient.connect
- Please usevar room = Room(...)
androom.connect
instead.track in TrackMutedEvent/TrackUnmutedEvent
- Usepublication
insteadTrackStreamStateUpdatedEvent.trackPublication
- UseTrackStreamStateUpdatedEvent.publication
insteadRemotePublication.videoQuality
- UseRemotePublication.setVideoQuality(quality)
insteadRemotePublication.subscribed
- UseRemotePublication.subscribe()
orunsubscribe()
insteadRemotePublication.enabled
- UseRemotePublication.enable()
ordisable()
insteadParticipant.unpublishTrack
- UseParticipant.removePublishedTrack
instead- Removed
AudioPublishOptions.stopMicTrackOnMute
- Do not emit Reconnecting event during connection resume. (#459)
- Cleanup when remove remote participants. (#460)
- Support change key index for encryptors. (#457)
- Bug fixes for e2ee (Web/Firefox). (#453)
- Add lost quality (Protocol v11). (#443)
- [E2EE] Add key handler for web worker. (#449)
- E2EE improvement. (#461)
- Set different rendering methods for web and native.
- Improve reconnection events, add RoomAttemptReconnectEvent.
- upgrade protocol.
- Improve reconnect logic for websocket (#406)
- Fix: Prevent ReplayKitChannel related code from being executed on non-iOS platforms. (#432)
- Add AudioSourceStats.
- Fix: invalid muted state for local publication.
- Add MediaConnectException.
- Fix preview bug for desktop screen share.
- Fix errors caused by window close handler for web.
- Add topic for search optimization in pub.dev.
- Fix safari screen sharing failure.
- Fix e2ee worker compile for flutter web.
- Fix video renderer issue.
- Fix: video renderer dispose issue and correctly handle metadataMuted for TrackPublication.
- Fix getStats for remote track.
- Fix set setScreenShareEnabled when detect replaykit state changed.
- Improve room/participants metadata update.
- Simplify backupCodec setting.
- Handling of incompatible published codecs.
- Fix/unpublish screen audio track when stop screen share.
- Upgrade connectivity_plus version.
- Fix: low-resolution screen sharing for safari 17.
- Update build.gradle for gradle 8.0.0 namespace.
- Fix captureScreenAudio conditional.
- Fix iOSBroadcastExtension always false after copyWith invoked.
- Fix: VP9 svc screenshare.
- Fix iOS example compilation after upgrading to XCode 15.
- Fix: Crop video output size to target settings (iOS/macOS).
- Fix: Fix bluetooth sco not stopping after room disconnect (Android).
- Non-functional update, forcing the versions in
'ios/livekit_client.podspec', 'macos/livekit_client.podspec', 'lib/src/livekit.dart'
consistent with pubspec.yaml
- Fixed Renderer bug for Windows.
- E2EE Improvements.
- Fixed error when sending events on non-platform thread [iOS/macOS].
- Update default bitrates according to VMAF guide
- Support multi-codec simulcast.
- Support SVC publishing with AV1/VP9.
- More robustness for E2EE.
- Configurable Audio Modes for Android.
- Fix: remove js_bindings and use the built-in AudioContext for js interop to support flutter 3.13.0.
- Fix: fix the speakerPhone switch issue for Android.
- Fix: fix iOS cannot publish the audio track correctly.
- Fix: fix crash when re-publish video track on Windows/Linux.
- Fix: set preferCurrentTab to false by default
- Fix: fix Android earpiece not being replaced after wired headset is disconnected.
- Fix: SpeakerPhone switch for Android.
- Feat: expose Android audio modes.
- Fix: Correctly save speakerOn state and restore in AudioManagement.
- Upgrade flutter-webrtc to 0.9.36 (libwebrtc m114).
- Fix: Skip decryption when ratchet exceeded.
- Fix SpeakerPhone switch for mobile.
- Fix: Fix data channel cannot be opened due to events loss.
- Fix: Fix ScreenShareCaptureOptions not passed correctly.
- Fix: facingMode for mobile web.
- Fix: add name to AudioPublishOptions.
- Fix: track not stop stats monitor correctly.
- Feat: add preferCurrentTab support for flutter web.
- Fix incorrect 4:3 preset bitrates
- Fix: fix wrong override when options is not null when LocalTrack.create.
- Fix: Frame drops for Android.
- Fix: issue for get user audio on Android.
- Fix: Improve iOS/macOS H264 encoder.
- Fix: Default capture/publish options for fast connect.
- Feat: add linux support.
- Fix: audio play bug for ios safari.
- Fix: fix bluetooth device enumerate on android.
- Fix: Do not operate on inactive tracks.
- Fix: use the correct transceiver id.
- Fix: Support restart camera for windows/linux.
- Fix: Move the call of capturer.stopCapture() outside the main thread to avoid blocking of flutter method call.
- Fix: Handle exceptions for framerate settings for darwin.
- Fix resolution/framerate/bitrate issue for publishVideoTrack.
- End-to-end encryption support.
- Feat: Support setVideoFPS for subscribe.
- Feat: topic for data-channel.
- Feat: support metadata update.
- Feat: handle reconnect response to re-configuration PCs.
- Docs: readme manager initial setup.
- Feat: upgrade protocol version to v9.
- Chore: Use participantIdentity instead of Sid for track permissions.
- Feat: Bump flutter-webrtc to 0.9.25.
- Fix: Fix empty label for Wired Headset on Android.
- Fix: ICE Connectivity doesn't establish with DualSIM iPhones.
- Fix: fix memory leak for screen capture (macOS).
- Feat: web/native device consistency management (native/web).
- Fix: fix renderer issue for Safari/Firefox.
- Fix: set forceRelay if server response is enabled.
- Feat: Forward leave reason of disconnected events.
- Feat: expose logger level api.
- Feat: expose Room recording event.
- Fix: re-publish tracks after re connect
- Fix the bug for firefox.
- Fix crash when using virtual camera (OBS) for osx.
- Fix crash when screen sharing with simulcast on macOS
- Feat: support fast switch camera for LocalVideoTrack.
- Fix: Audio output list is empty in android (#231)
- Update flutter-webrtc to 0.9.19
- As a result of this, the BLUETOOTH_CONNECT permission for Android is no longer needed.
- Fix: fix connection fails for firefox. (#222, close #221)
- Fix: Disconnect from room before app closes.
- Fix: Correctly throws final error when connection fails.
- Bump flutter-webrtc to 0.9.17
- Enable BroadCastExtension for iOS in example.
- Fix resume/full-reconnect.
- Support stop audio track on mute(turn off the mic indicator).
- Fixed ice config issues. (#192).
- Make timeouts configurable.
- Fixed Hardware.setSpeakerphoneOn() not working on iOS.
- Fixed track not being correctly passed to localParticipant in FastConnectOptions, causing the camera to apply twice and not be released.
- Clean up pingIntervalTimer when closing SignalClient.
- Supports getting the connected remote address.
- Make MediaDevice data class.
- Add simulate for candidate protocol switch.
- Fix VideoTrackRenderer for local has been blacked when toggle video status #166
- Fixed timestamp type error in ping/pong.
- Add sid for reconnecting. (#168)
- Add force relay config. (#169)
- Bump flutter_webrtc version to 0.9.7.
- feat: Support for capturing audio for chrome tab.
- Expose dataChannel for e2e testing.
- Expose RTPReceiver for getting track statistics.
- fix: Do not set mandatory & optional parameters, when used in web (#164)
- fix: fix setSpeakerphoneOn, close #167.
- Fix compilation error caused by webrtc-interface version jumping.
- Add hardware api for camera and audio input/output selection.
- Fixed UI stuck when get thumbnails on screen sharing. (#149)
- Align the version in .podspec with the package version (fix compilation errors under ios/mac).
- Set subscription to allowed when subscribed.
- Handle combined participant update.
- Downgrade version settings to support flutter 2.8.0+.
- Fix: camera release.
- Feat: iOS screen share.
- Feat: Screen sharing for desktop.
- Feat: protocol v8.
- Re-send tracks permissions after reconnected.
- Add audioBitrate option for publishAudioTrack.
- Bump version for flutter_webrtc (up to 0.8.9).
- Fix: SIGTERM / Crash on connection (Windows) #121
- Fix: Microphone not published on windows build #64
- Ready for Flutter 3.
mirrorMode
forVideoTrackRenderer
.- Fix url building logic for validation mode.
- Changed
AVAudioSessionCategory
switch timing to publish / unpublish. - Support for Bluetooth on Android 11.
- Fix: iOS audio issue which prevents
AVAudioSessionCategory
to switch correctly.
- Support for protocol 7, remote unpublish.
- Fixes simulcast issues with Android devices.
- Adds ability to select capture device by id.
serverRegion
property on Room.- Minor optimizations.
- Using WebRTC version M97.
- New track subscription permissions API.
- Improvements to reconnect logic.
- Room metadata update event.
- Using WebRTC version M93.
- New
dynacast
option toRoomOptions
. Dynacast dynamically pauses video layers that are not being consumed by any subscribers, significantly reducing publishing CPU and bandwidth usage. (currently defaults to off) - Rename
optimizeVideo
toadaptiveStream
and improve stability. AdaptiveStream lets LiveKit automatically manage quality of subscribed video tracks to optimize for bandwidth and CPU. - Ensure data channel is ready state when
LocalParticipant.publishData
api is called.
- Default capture options for setCameraEnabled, setMicrophoneEnabled
- Track stream update events
- Send video layers to server for more video optimization
- Room instance can be created without connecting
- Release Camera/Mic when track is muted
- Better type handling
- Option to unpublish without stopping track
- Fixed RemoteTrackPublication mute events
- Fixed data channel publish bug
- Initial Windows support
- Screen sharing support for Android
- Fixed TrackPublication/Track mute status
- Fixed bug with updateTrack
- Fixed being able to apply capture resolution constraints
- Initial macOS support
- Connection quality information
- Automatic video optimizations
- Simplified track APIs
- Fix ios camera switch issue
- Looser podspec constraint for WebRTC-SDK to avoid build issues
- Better URL parsing
- change ios audio session defaults to support voice isolation
- fix explicit subscribe/unsubscribe issue
- fix WebRTC-SDK resolve issue
- include plugins for Android and Web
- major update with new event system
- supports simulcast for iOS
- support for background audio for iOS
- support for protocol 3, subscriber as primary connection
- improved audio management for iOS, mic indicator only when audio tracks published
- fires TrackUnpublished for local tracks
- fixed occasional crashes during publishing
- fixed video rendering blank after widget changes
- fixed audio track playback for web
- fixed publishing tracks for web
- updated constants to be lowerCamelCase
- updated style & formatting guide
replaceTrack
API to switch camera sources- example app works on Android
- pass more detailed connect error message
- bugfixes with publishing duplicate video tracks
- removed use of media stream during publishing
- Minor improvements to error handling
- Initial beta release.