@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é saghul@gmail.com