Required services
The API requires declaration of the system audio service:Types Used
Constructors
new AudioFocusSession()
new AudioFocusSession(id): AudioFocusSession
Parameters
id
number
Session ID obtained from
Returns
AudioFocusSessionProperties
sessionId
sessionId:number
focusUsage
focusUsage:number
Methods
getAudioSessionId()
getAudioSessionId():number
Gets the session ID for this instance.
Returns
number
number The session ID assigned to this instance
Examples
/* Returns the session id and stores it in sessionId * const session = new AudioFocusSession(1); const sessionId = session.getAudioSessionId(); //value should be 1getUsage()
getUsage():number
Gets the current audio usage type for this focus session.
Returns USAGE_NONE if no focus has been requested.
Returns
number
number The current audio usage type from enum
Examples
registerAudioFocusListenerAsync()
registerAudioFocusListenerAsync(callback:(value: any) => void): Promise<AudioFocusStatus>
Registers a callback to receive audio focus change notifications.
Only one callback can be registered per session at a time.
Parameters
callback
(value: any) => void
Function to receive focus change events. Events include:
GRANTED (0): Focus was grantedRELEASED (1): Focus was releasedDUCKED (2): Audio ducked (reduced volume)PAUSED (3): Audio pausedSTOPPED (4): Audio stop
Returns
Promise<AudioFocusStatus>
Promise A promise that resolves to:
AUDIO_FOCUS_STATUS_NO_ERROR (0): Callback registered successfullyAUDIO_FOCUS_STATUS_BAD_VALUE (-2): Invalid callbackAUDIO_FOCUS_STATUS_NO_INIT (-3): Session not initializedAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): Callback already registered
Examples
releaseAudioFocusAsync()
releaseAudioFocusAsync():Promise<AudioFocusStatus>
Releases previously requested audio focus.
This must be called when audio playback is completed or when focus is no longer needed.
Returns
Promise<AudioFocusStatus>
Promise A promise that resolves to:
AUDIO_FOCUS_STATUS_NO_ERROR (0): Focus released successfullyAUDIO_FOCUS_STATUS_BAD_VALUE (-2): Invalid session stateAUDIO_FOCUS_STATUS_NO_INIT (-3): Session not initializedAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): No focus held
Examples
requestAudioFocusAsync()
requestAudioFocusAsync(attr?: AudioFocusAttributes | undefined): Promise<AudioFocusStatus>
Requests audio focus for the session with specified attributes.
When focus is granted, any previously focused audio may be ducked, paused, or stopped
based on the usage type.
Parameters
attr?
AudioFocusAttributes | undefined
Optional configuration for focus request. If not provided,
defaults to USAGE_MEDIA.
Returns
Promise<AudioFocusStatus>
Promise A promise that resolves to:
AUDIO_FOCUS_STATUS_NO_ERROR (0): Focus granted successfullyAUDIO_FOCUS_STATUS_DENIED (1): Focus request deniedAUDIO_FOCUS_STATUS_DELAYED (2): Focus request delayedAUDIO_FOCUS_STATUS_BAD_VALUE (-2): Invalid attributesAUDIO_FOCUS_STATUS_NO_INIT (-3): Session not initializedAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): Invalid operation
Examples
unregisterAudioFocusListenerAsync()
unregisterAudioFocusListenerAsync():Promise<AudioFocusStatus>
Unregister the previously registered focus change callback.
Returns
Promise<AudioFocusStatus>
Promise A promise that resolves to:
AUDIO_FOCUS_STATUS_NO_ERROR (0): Callback unregistered successfullyAUDIO_FOCUS_STATUS_BAD_VALUE (-2): Invalid session stateAUDIO_FOCUS_STATUS_NO_INIT (-3): Session not initializedAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): No callback registered

