Skip to content

Feat/android output profile - #1323

Open
mdydek wants to merge 5 commits into
mainfrom
feat/android-output-profile
Open

mdydek wants to merge 5 commits into
mainfrom
feat/android-output-profile

Conversation

@mdydek

@mdydek mdydek commented Sep 28, 2026

Copy link
Copy Markdown
Member

Direct continuation of the work by @maciejkucmierz-swm

⚠️ Breaking changes ⚠️

  • None.

Introduced changes

Adds AudioContextOptions.androidOutputProfile?: 'media' | 'voiceCommunication'.

voiceCommunication classifies the individual Android output stream with Oboe Usage::VoiceCommunication and ContentType::Speech. The default remains media.

Refactored players construction in audiocontext so there is less code repetition

Scope

  • Immutable per-AudioContext option; no global playback-profile state.
  • Preserves existing Oboe sharing mode and performance mode.
  • Does not request audio focus, enter communication mode, select a route, or guarantee AEC, noise suppression, or AGC.

Validation

  • Pre-commit type, lint, and formatting checks pass.
  • Added a focused JS regression test proving the option is forwarded to globalThis.createAudioContext.
  • Direct Android Gradle library build passed.
  • Physical-device validation remains required for routing, volume, and platform behavior.

Checklist

  • Linked relevant issue — not applicable; no issue was provided.
  • Updated relevant documentation
  • Added/Conducted relevant tests
  • Performed self-review of the code
  • Updated Web Audio API coverage — not applicable; this is an Android-only native output classification.
  • Added support for web — not applicable; no web behavior is added.
  • Updated old arch android spec file — not applicable; this PR does not change the Android TurboModule spec.

@mdydek mdydek added feature New user-facing features or major capabilities android Native Android implementation, C++/Java/Kotlin bindings, or Android-specific issues labels Sep 28, 2026
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

WPT non-regression comparison

PASS — no regressions · 0 improved section(s) · overall 3420 → 3420 (0)

Unchanged sections (28)
Spec section Base pass Head pass Delta
Processing model 0 0 0
Other 56 56 0
AnalyserNode 138 138 0
AudioBuffer 140 140 0
AudioBufferSourceNode 218 218 0
AudioContext 58 58 0
AudioNode 261 261 0
AudioParam 680 680 0
BiquadFilterNode 275 275 0
ChannelMergerNode 30 30 0
ChannelSplitterNode 7 7 0
ConstantSourceNode 64 64 0
ConvolverNode 203 203 0
DelayNode 104 104 0
DestinationNode 0 0 0
DynamicsCompressorNode 4 4 0
GainNode 15 15 0
IIRFilterNode 87 87 0
MediaElementAudioSourceNode 0 0 0
MediaStreamAudioDestinationNode 1 1 0
MediaStreamAudioSourceNode 0 0 0
OfflineAudioContext 35 35 0
OscillatorNode 104 104 0
PannerNode 723 723 0
PeriodicWave 33 33 0
ScriptProcessorNode 0 0 0
StereoPannerNode 102 102 0
WaveShaperNode 82 82 0

Baseline: 87cca81bff30ee15f3a407008cdc2ee30527ef89 · Candidate: 13cf6ee378564eee02685696429de9d09cea28c2

Workflow run · this comment is updated on every push.

@mdydek
mdydek added this pull request to stack #1325 September 29, 2026 18:00

This branch has not been deployed

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

Labels

android Native Android implementation, C++/Java/Kotlin bindings, or Android-specific issues feature New user-facing features or major capabilities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants