@studiokloek/capacitor-plugin-audiosession
v4.0.3
Published
This capacitor plugin allows iOS applications to get notified audio about interrupts & route changes (for example when a headset is connected), and also query and override the audio device in use.
Downloads
4
Readme
@studiokloek/capacitor-plugin-audiosession
This plugin works on iOS only.
This plugin is a port of https://github.com/saghul/cordova-plugin-audioroute and allows iOS applications to get notified about audio session interruptions and route changes (for example when a headset is connected). To query and override the audio device in use is also supported.
Install
npm install @studiokloek/capacitor-plugin-audiosession
npx cap sync
For now this plugin works only in Capacitor 4.0+.
API
currentOutputs()
overrideOutput(...)
addListener('routeChanged', ...)
addListener('interruption', ...)
- Interfaces
- Type Aliases
- Enums
currentOutputs()
currentOutputs() => Promise<AudioSessionPorts[]>
Returns: Promise<AudioSessionPorts[]>
overrideOutput(...)
overrideOutput(type: OutputOverrideType) => Promise<OverrideResult>
| Param | Type |
| ---------- | ----------------------------------------------------------------- |
| type
| OutputOverrideType |
Returns: Promise<OverrideResult>
addListener('routeChanged', ...)
addListener(eventName: 'routeChanged', listenerFunc: RouteChangeListener) => Promise<PluginListenerHandle> & PluginListenerHandle
| Param | Type |
| ------------------ | ------------------------------------------------------------------- |
| eventName
| 'routeChanged' |
| listenerFunc
| RouteChangeListener |
Returns: Promise<PluginListenerHandle> & PluginListenerHandle
addListener('interruption', ...)
addListener(eventName: 'interruption', listenerFunc: InterruptionListener) => Promise<PluginListenerHandle> & PluginListenerHandle
| Param | Type |
| ------------------ | --------------------------------------------------------------------- |
| eventName
| 'interruption' |
| listenerFunc
| InterruptionListener |
Returns: Promise<PluginListenerHandle> & PluginListenerHandle
Interfaces
PluginListenerHandle
| Prop | Type |
| ------------ | ----------------------------------------- |
| remove
| () => Promise<void> |
Type Aliases
OverrideResult
{ success: boolean; message: string; }
OutputOverrideType
'default' | 'speaker'
RouteChangeListener
(reason: RouteChangeReasons): void
InterruptionListener
(type: InterruptionTypes): void
Enums
AudioSessionPorts
| Members | Value |
| ----------------------- | ------------------------------- |
| AIR_PLAY
| 'airplay' |
| BLUETOOTH_LE
| 'bluetooth-le' |
| BLUETOOTH_HFP
| 'bluetooth-hfp' |
| BLUETOOTH_A2DP
| 'bluetooth-a2dp' |
| BUILT_IN_SPEAKER
| 'builtin-speaker' |
| BUILT_IN_RECEIVER
| 'builtin-receiver' |
| HDMI
| 'hdmi' |
| HEADPHONES
| 'headphones' |
| LINE_OUT
| 'line-out' |
RouteChangeReasons
| Members | Value |
| ------------------------------------ | --------------------------------------------- |
| NEW_DEVICE_AVAILABLE
| 'new-device-available' |
| OLD_DEVICE_UNAVAILABLE
| 'old-device-unavailable' |
| CATEGORY_CHANGE
| 'category-change' |
| OVERRIDE
| 'override' |
| WAKE_FROM_SLEEP
| 'wake-from-sleep' |
| NO_SUITABLE_ROUTE_FOR_CATEGORY
| 'no-suitable-route-for-category' |
| ROUTE_CONFIGURATION_CHANGE
| 'route-config-change' |
| UNKNOWN
| 'unknown' |
InterruptionTypes
| Members | Value |
| ----------- | -------------------- |
| BEGAN
| 'began' |
| ENDED
| 'ended' |
License
MIT
Author
Martijn Swart https://studiokloek.nl
Based on work from: Saúl Ibarra Corretgé [email protected]