Skip to content
Merged

v2.9.0 #1139

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .changes/add-agents-md

This file was deleted.

1 change: 0 additions & 1 deletion .changes/add-certificate-pinning

This file was deleted.

1 change: 0 additions & 1 deletion .changes/add-rpc-v2

This file was deleted.

1 change: 0 additions & 1 deletion .changes/agp9-built-in-kotlin

This file was deleted.

3 changes: 0 additions & 3 deletions .changes/android-media-routing

This file was deleted.

1 change: 0 additions & 1 deletion .changes/audio-engine-availability

This file was deleted.

1 change: 0 additions & 1 deletion .changes/audio-manager-api

This file was deleted.

1 change: 0 additions & 1 deletion .changes/audio-processing-create-cleanup

This file was deleted.

1 change: 0 additions & 1 deletion .changes/audio-processing-platform-gate

This file was deleted.

1 change: 0 additions & 1 deletion .changes/audio-processing-start-flow

This file was deleted.

1 change: 0 additions & 1 deletion .changes/broadcast-picker-private-selector

This file was deleted.

1 change: 0 additions & 1 deletion .changes/connection-check

This file was deleted.

1 change: 0 additions & 1 deletion .changes/desktop-audio-renderer

This file was deleted.

1 change: 0 additions & 1 deletion .changes/fix-android-select-audio-output

This file was deleted.

1 change: 0 additions & 1 deletion .changes/macos-video-platform-view

This file was deleted.

1 change: 0 additions & 1 deletion .changes/microphone-mute-mode

This file was deleted.

1 change: 0 additions & 1 deletion .changes/render-platformview

This file was deleted.

1 change: 0 additions & 1 deletion .changes/runtime-audio-options

This file was deleted.

1 change: 0 additions & 1 deletion .changes/single-disconnect-event

This file was deleted.

1 change: 0 additions & 1 deletion .changes/track-render-placeholder

This file was deleted.

1 change: 0 additions & 1 deletion .changes/video-degradation-default

This file was deleted.

1 change: 0 additions & 1 deletion .changes/video-render-mode-switch

This file was deleted.

2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.8.0
2.9.0
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
# CHANGELOG

## 2.9.0

* Added: Add native certificate pinning for SDK-owned connections
* Added: Add RPC v2 (data-stream-based payloads) with v1 fallback
* Added: Audio engine availability and externalCallSystem mode for CallKit
* Added: AudioManager audio session options with engine-driven native lifecycle and platform routing controls
* Added: Add ConnectionCheck utility for diagnosing connection issues (port of the client-sdk-js connection helper)
* Added: Audio frame capture on Linux/Windows
* Added: Microphone mute mode control on iOS/macOS
* Added: Runtime audio processing controls for local audio tracks
* Added: Widget Placeholder added for VideoTrackRenderer
* Changed: Default VideoTrackRenderer renderMode to auto, which currently resolves to texture rendering
* Fixed: Apply Android media audio attributes during WebRTC initialization
* Fixed: Use initialization audio options as the default Android session policy
* Fixed: Avoid sticky Android speaker routing when updating route preference
* Fixed: Clean up local audio tracks when recording start fails
* Fixed: Throw platformUnavailable when runtime audio processing is unsupported
* Fixed: Apply create-time audio processing when local recording is prepared
* Fixed: Remove non-public buttonPressed: selector from broadcast picker activation
* Fixed: Allow selectAudioOutput on Android
* Fixed: Support platform video rendering on macOS
* Fixed: Emit a single disconnected event when connecting fails
* Fixed: Handle switching video render modes without stale renderers
* Docs: Add AGENTS.md with agent/contributor guidelines

## 2.8.1

* Added: Add agent deployment targeting to token source options
* Fixed: Android plugin compatibility with AGP 9 built-in Kotlin
* Fixed: Use maintain-resolution as the default video degradation preference for local video publishing

## 2.8.0

* Added: Session API support for simpler E2EE setup
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Include this package to your `pubspec.yaml`
```yaml
---
dependencies:
livekit_client: ^2.8.0
livekit_client: ^2.9.0
```

### iOS
Expand Down Expand Up @@ -161,7 +161,7 @@ await AudioManager.instance.setAudioSessionOptions(
);
```

See the [audio session guide](https://github.com/livekit/client-sdk-flutter/blob/main/docs/audio.md) for more.
See the [audio session guide](https://github.com/livekit/client-sdk-flutter/blob/main/doc/audio.md) for more.

### Desktop support

Expand Down Expand Up @@ -411,7 +411,7 @@ Widget build(BuildContext context) {

Audio tracks are played automatically as long as you are subscribed to them.

LiveKit owns the platform audio session through `AudioManager`. A call is managed automatically with no setup. Speaker routing and, when you need it, manual session control go through the same object. See the [audio session guide](https://github.com/livekit/client-sdk-flutter/blob/main/docs/audio.md) for examples covering the automatic and manual modes, speaker routing, per platform overrides, and migration from the older `Hardware` APIs.
LiveKit owns the platform audio session through `AudioManager`. A call is managed automatically with no setup. Speaker routing and, when you need it, manual session control go through the same object. See the [audio session guide](https://github.com/livekit/client-sdk-flutter/blob/main/doc/audio.md) for examples covering the automatic and manual modes, speaker routing, per platform overrides, and migration from the older `Hardware` APIs.

```dart
// A call is managed automatically. Route to the speaker when you want.
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion ios/livekit_client.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'livekit_client'
s.version = '2.8.0'
s.version = '2.9.0'
s.summary = 'Open source platform for real-time audio and video.'
s.description = 'Open source platform for real-time audio and video.'
s.homepage = 'https://livekit.io/'
Expand Down
2 changes: 1 addition & 1 deletion lib/src/livekit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import 'support/webrtc_initialize_options.dart';
/// Main entry point to connect to a room.
/// {@category Room}
class LiveKitClient {
static const version = '2.8.0';
static const version = '2.9.0';

/// Initialize the WebRTC plugin.
///
Expand Down
2 changes: 1 addition & 1 deletion macos/livekit_client.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'livekit_client'
s.version = '2.8.0'
s.version = '2.9.0'
s.summary = 'Open source platform for real-time audio and video.'
s.description = 'Open source platform for real-time audio and video.'
s.homepage = 'https://livekit.io/'
Expand Down
6 changes: 5 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@
name: livekit_client
description: Flutter Client SDK for LiveKit. Build real-time video and audio
into your apps. Supports iOS, Android, and Web.
version: 2.8.0
version: 2.9.0
homepage: https://github.com/livekit/client-sdk-flutter

# Test fixture keys for certificate pinning tests, not real secrets.
false_secrets:
- /test/support/certificate_pinning_io_test.dart

environment:
sdk: ">=3.6.0 <4.0.0"
flutter: ">=3.27.0"
Expand Down
Loading