How selmanyasinaktas/capacitor-audio-manager works
This Capacitor plugin lets an app request audio and ringer state, change supported settings, inspect DND permission, and subscribe to live changes. Calls enter through the TypeScript registration layer and are dispatched by Capacitor to Android, iOS, or the web fallback. Android implements stream and ringer operations through its native audio implementation; iOS uses output-volume observations for best-effort state and events, while web returns documented placeholders or unsupported errors. The native platform wiring is based on sampled plugin sources; peripheral platform behavior follows the README.
Main entry points: index.ts Plugin registration · AudioManagerPlugin.java Android bridge · AudioManagerPlugin.swift iOS bridge · AudioManagerImpl.java Android operations
Components 12
Plugin API
- Plugin registration
src/index.ts - API contract
src/definitions.ts
Android Native
- Android bridge
android/src/main/java/io/github/selmanyasinaktas/capacitor/audiomanager/AudioManagerPlugin.java - Android operations
android/src/main/java/io/github/selmanyasinaktas/capacitor/audiomanager/AudioManagerImpl.java
iOS Native
- iOS bridge
ios/Sources/AudioManagerPlugin/AudioManagerPlugin.swift - iOS operations
ios/Sources/AudioManagerPlugin/AudioManager.swift
Web Fallback
- Web fallback
src/web.ts
Other components
- Capacitor app
- Android audio services
- DND settings
- iOS audio session
- Plugin listeners
Connections 15
- Capacitor app → Plugin registration: calls API
- Plugin registration → API contract: uses types
- Plugin registration → Android bridge: dispatches calls
- Plugin registration → iOS bridge: dispatches calls
- Plugin registration → Web fallback: loads fallback
- Android bridge → Android operations: invokes operations
- Android operations → Android audio services: reads / writes
- Android bridge → DND settings: opens settings
- Android bridge → Plugin listeners: notifies changes
- Android bridge → Android operations: reads event state
- iOS bridge → iOS operations: invokes operations
- iOS operations → iOS audio session: reads volume
- iOS bridge → iOS audio session: observes volume
- iOS bridge → Plugin listeners: notifies changes
- Web fallback → Plugin listeners: supports listeners