Skip to content

chore(audio): mark pre-released audio APIs as experimental#1136

Open
hiroshihorie wants to merge 2 commits into
mainfrom
hiroshi/experimental-audio-api
Open

chore(audio): mark pre-released audio APIs as experimental#1136
hiroshihorie wants to merge 2 commits into
mainfrom
hiroshi/experimental-audio-api

Conversation

@hiroshihorie

Copy link
Copy Markdown
Member

Summary

Marks the audio APIs that are new since 2.8.0 as @experimental before they ship in a stable release, so their shape can still evolve without a breaking-change dance.

Marked experimental

  • Audio session surface: AudioSessionOptions, AppleAudioSessionConfiguration, AndroidAudioSessionConfiguration, the platform enums, AudioSessionManagementMode, and ValueOrAbsent
  • AudioManager session methods: setAudioSessionOptions, setAudioSessionManagementMode, deactivateAudioSession
  • Engine state observability: AudioEngineState, audioEngineState, audioEngineStateStream
  • Audio processing surface: AudioProcessingOptions, AudioProcessingMode, AudioProcessingFailureReason, AudioProcessingException, LocalAudioTrack.setAudioProcessingOptions, and the AudioProcessingState diagnostic types

Deliberately left stable

  • MicrophoneMuteMode APIs, which mirror the Swift SDK enum that has been stable since 2.10.0
  • Speaker output preference methods, which the deprecated Hardware APIs reference as migration targets
  • AudioCaptureOptions, which predates 2.9.0. Only the new AudioProcessingOptions interface it implements is marked
  • Engine availability and externalCallSystem were already marked in feat(audio): engine availability control and external call system session mode #1127

Annotations only, no behavior change. No changeset since this does not alter released behavior, but happy to add one if we want it called out in the changelog.

🤖 Generated with Claude Code

Covers the AudioSessionOptions surface (platform configurations and
enums), ValueOrAbsent, AudioSessionManagementMode, the AudioManager
session methods, and the audio engine state observability, all new
since 2.8.0. Speaker output preference methods stay stable since the
deprecated Hardware APIs point to them as migration targets.
Covers the AudioProcessingOptions surface (mode, failure reason,
exception), the runtime setAudioProcessingOptions on local audio
tracks, and the AudioProcessingState diagnostic types, all new since
2.8.0. AudioCaptureOptions itself stays stable, only the new
processing interface it implements is marked.
@github-actions

Copy link
Copy Markdown

Caution

Breaking change detected without major changeset

dart-apitool detected the following breaking changes:

Preparing git repository: https://github.com/livekit/client-sdk-flutter
Using ref: main
Cloning git repository: https://github.com/livekit/client-sdk-flutter
Checking out ref: main
Successfully cloned to: /tmp/CRHAMM
Preparing package dependencies for git package https://github.com/livekit/client-sdk-flutter (forced Flutter)
Resolving dependencies...
Downloading packages...
  _fe_analyzer_shared 85.0.0 (105.0.0 available)
  analyzer 7.7.1 (14.1.0 available)
  build 2.5.4 (4.0.8 available)
  build_config 1.1.2 (1.3.1 available)
  build_daemon 4.1.1 (4.1.2 available)
  build_resolvers 2.5.4 (3.0.4 available)
  build_runner 2.5.4 (2.15.2 available)
  build_runner_core 9.1.2 (9.3.2 available)
  built_value 8.12.4 (8.12.6 available)
  code_assets 1.0.0 (1.2.1 available)
  connectivity_plus 7.1.1 (7.3.0 available)
  dart_style 3.1.1 (3.1.12 available)
  dart_webrtc 1.8.0 (1.8.1 available)
  dbus 0.7.12 (0.7.14 available)
  device_info_plus 12.3.0 (13.2.0 available)
  device_info_plus_platform_interface 7.0.3 (8.1.0 available)
  hooks 1.0.2 (2.1.0 available)
  json_annotation 4.9.0 (4.12.0 available)
  json_serializable 6.9.5 (6.14.0 available)
  matcher 0.12.19 (0.12.20 available)
  meta 1.18.0 (1.19.0 available)
  mockito 5.4.6 (5.7.0 available)
  native_toolchain_c 0.17.6 (0.19.3 available)
  objective_c 9.3.0 (9.4.1 available)
  package_config 2.2.0 (3.0.0 available)
  path_provider 2.1.5 (2.1.6 available)
  path_provider_android 2.2.22 (2.3.1 available)
  path_provider_linux 2.2.1 (2.2.2 available)
  path_provider_platform_interface 2.1.2 (2.1.3 available)
  source_gen 2.0.0 (4.2.3 available)
  source_helper 1.3.7 (1.3.12 available)
  synchronized 3.4.0 (3.4.1 available)
  test_api 0.7.11 (0.7.13 available)
  uuid 4.5.3 (4.6.0 available)
  vector_math 2.2.0 (2.4.0 available)
  vm_service 15.0.2 (15.2.0 available)
  win32 5.15.0 (6.3.0 available)
  win32_registry 2.1.0 (3.0.3 available)
  xml 6.6.1 (7.0.1 available)
Got dependencies!
39 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Resolving dependencies in `./example`...
Downloading packages...
Got dependencies in `./example`.
Preparing . (forced Flutter)
Copying sources from .
Preparing package dependencies for local package . (forced Flutter)
Resolving dependencies...
Downloading packages...
  _fe_analyzer_shared 85.0.0 (105.0.0 available)
  analyzer 7.7.1 (14.1.0 available)
  build 2.5.4 (4.0.8 available)
  build_config 1.1.2 (1.3.1 available)
  build_daemon 4.1.1 (4.1.2 available)
  build_resolvers 2.5.4 (3.0.4 available)
  build_runner 2.5.4 (2.15.2 available)
  build_runner_core 9.1.2 (9.3.2 available)
  built_value 8.12.4 (8.12.6 available)
  code_assets 1.0.0 (1.2.1 available)
  connectivity_plus 7.1.1 (7.3.0 available)
  dart_style 3.1.1 (3.1.12 available)
  dart_webrtc 1.8.0 (1.8.1 available)
  dbus 0.7.12 (0.7.14 available)
  device_info_plus 12.3.0 (13.2.0 available)
  device_info_plus_platform_interface 7.0.3 (8.1.0 available)
  hooks 1.0.2 (2.1.0 available)
  json_annotation 4.9.0 (4.12.0 available)
  json_serializable 6.9.5 (6.14.0 available)
  matcher 0.12.19 (0.12.20 available)
  meta 1.18.0 (1.19.0 available)
  mockito 5.4.6 (5.7.0 available)
  native_toolchain_c 0.17.6 (0.19.3 available)
  objective_c 9.3.0 (9.4.1 available)
  package_config 2.2.0 (3.0.0 available)
  path_provider 2.1.5 (2.1.6 available)
  path_provider_android 2.2.22 (2.3.1 available)
  path_provider_linux 2.2.1 (2.2.2 available)
  path_provider_platform_interface 2.1.2 (2.1.3 available)
  source_gen 2.0.0 (4.2.3 available)
  source_helper 1.3.7 (1.3.12 available)
  synchronized 3.4.0 (3.4.1 available)
  test_api 0.7.11 (0.7.13 available)
  uuid 4.5.3 (4.6.0 available)
  vector_math 2.2.0 (2.4.0 available)
  vm_service 15.0.2 (15.2.0 available)
  win32 5.15.0 (6.3.0 available)
  win32_registry 2.1.0 (3.0.3 available)
  xml 6.6.1 (7.0.1 available)
Got dependencies!
39 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Resolving dependencies in `./example`...
Downloading packages...
Got dependencies in `./example`.
Omitting pub get (package config already present)
Analyzing /tmp/CRHAMM
Omitting pub get (package config already present)
Analyzing .
Cleaning up
Cleaning up
Checking Package version
ignoring prerelease
-- Generating report using: Console Reporter --
BREAKING CHANGES
├─┬ Class LocalAudioTrack
│ └─┬ Method setAudioProcessingOptions
│   └── Experimental Flag changed. false -> true (CE15)
├─┬ Class track_options.AudioProcessingOptions
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioProcessingMode
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioSessionOptions
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AppleAudioSessionConfiguration
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AppleAudioCategory
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AppleAudioCategoryOption
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AppleAudioMode
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class ValueOrAbsent
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AndroidAudioSessionConfiguration
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AndroidAudioMode
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AndroidAudioFocusMode
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AndroidAudioStreamType
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AndroidAudioAttributesUsageType
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AndroidAudioAttributesContentType
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioEngineState
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioManager
│ ├─┬ Method setAudioSessionOptions
│ │ └── Experimental Flag changed. false -> true (CE15)
│ ├─┬ Method setAudioSessionManagementMode
│ │ └── Experimental Flag changed. false -> true (CE15)
│ ├─┬ Method deactivateAudioSession
│ │ └── Experimental Flag changed. false -> true (CE15)
│ └─┬ Method getAudioProcessingState
│   └── Experimental Flag changed. false -> true (CE15)
├─┬ Class AudioSessionManagementMode
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioProcessingState
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioProcessingComponentState
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioProcessingComponentRequest
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioProcessingImplementation
│ └── Experimental Flag changed. false -> true (CI10)
├─┬ Class AudioProcessingException
│ └── Experimental Flag changed. false -> true (CI10)
└─┬ Class AudioProcessingFailureReason
  └── Experimental Flag changed. false -> true (CI10)
No non-breaking changes!
To learn more about the detected changes visit: https://github.com/bmw-tech/dart_apitool/blob/main/readme/change_codes.md
Version Check
New Version is too low!

Old version: "2.8.0"
New version: "2.8.0"
Needed version: "3.0.0"

Got "2.8.0" expected >= "3.0.0" (breaking changes)

If this is intentional, please add a changeset with major level in .changes/:

major type="changed" "Description of breaking change"

@hiroshihorie
hiroshihorie marked this pull request as ready for review July 22, 2026 07:39

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants