<!--
{
  "documentType" : "article",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/audio-session-support",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Audio Session Support"
}
-->

# Audio Session Support

Describe the properties that you associate with audio sessions and audio routes.

## Discussion> Important:
> The `AudioSession` API has been completely deprecated in iOS 7.0. See <doc://com.apple.documentation/documentation/AVFAudio/AVAudioSession> for the Objective-C implementation of these functions.

Audio Session Services lets you specify the intended audio behavior for your iOS app. For example, you can specify whether you intend for your app’s audio to silence other apps or to mix with their audio. You also use this API to specify your app’s behavior when it is interrupted, such as by a phone call. When the system knows your intentions, it configures the audio hardware in the device to satisfy those intentions, as possible.

These functions apply only to iOS. They do not apply to macOS.

## Topics

### Audio Session Support

[Audio Session Property Identifiers](/documentation/AudioToolbox/1618455-audio-session-property-identifie)

Property identifiers used with Audio Session Services in iOS.

[Audio Session Categories](/documentation/AudioToolbox/1618427-audio-session-categories)

Category identifiers for audio sessions, used as values for the [`kAudioSessionProperty_AudioCategory`](/documentation/AudioToolbox/kAudioSessionProperty_AudioCategory) property.

[Audio Session Modes](/documentation/AudioToolbox/1618405-audio-session-modes)

Mode identifiers for audio sessions, used as values for the [`kAudioSessionProperty_Mode`](/documentation/AudioToolbox/kAudioSessionProperty_Mode) property.

[Audio Session Category Route Overrides](/documentation/AudioToolbox/1618372-audio-session-category-route-ove)

Specifies whether the default audio route for the `PlayAndRecord` category should be overridden.

[Audio Session Activation Flags](/documentation/AudioToolbox/1618357-audio-session-activation-flags)

Flags that provide additional information about your app’s audio intentions upon session activation or deactivation.

[Audio Session Interruption States](/documentation/AudioToolbox/1618425-audio-session-interruption-state)

Identifiers used with the [`AudioSessionInterruptionListener`](/documentation/AudioToolbox/AudioSessionInterruptionListener) callback function in iOS to indicate that an audio interruption has started or stopped.

[`AudioSessionInterruptionType`](/documentation/AudioToolbox/AudioSessionInterruptionType)

Values that indicate the nature of the interruption that ended.

### Audio Routes

[Audio Route Change Reasons](/documentation/AudioToolbox/1618380-audio-route-change-reasons)

Identifiers for the various reasons that an audio route can change while your app is running.

[Audio Route Description Dictionary Keys](/documentation/AudioToolbox/audio-route-description-dictionary-keys)

Keys for the [`kAudioSessionProperty_AudioRouteDescription`](/documentation/AudioToolbox/kAudioSessionProperty_AudioRouteDescription) dictionary.

[Audio Route Type Key](/documentation/AudioToolbox/audio-route-type-key)

The one key for an audio route input or output dictionary.

[Audio Input Routes](/documentation/AudioToolbox/audio-input-routes)

Strings that identify the various audio input sources for a device.

[Audio Output Routes](/documentation/AudioToolbox/audio-output-routes)

The various audio output destinations available for an iOS device.

[Audio Route Change Dictionary Keys](/documentation/AudioToolbox/audio-route-change-dictionary-keys)

Keys for obtaining information about an audio hardware route change.

[Alternative Audio Route Change Reason Dictionary Key](/documentation/AudioToolbox/alternative-audio-route-change-reason-dictionary-key)

An alternate key for obtaining information about the reason for an audio route change.

### USB Accessories

[USB Accessory Audio Source Dictionary Keys](/documentation/AudioToolbox/usb-accessory-audio-source-dictionary-keys)

Keys for the dictionaries in the [`kAudioSessionProperty_InputSources`](/documentation/AudioToolbox/kAudioSessionProperty_InputSources) array.

[USB Accessory Audio Destination Dictionary Keys](/documentation/AudioToolbox/usb-accessory-audio-destination-dictionary-keys)

Keys for the dictionaries in the [`kAudioSessionProperty_OutputDestinations`](/documentation/AudioToolbox/kAudioSessionProperty_OutputDestinations) array.

### Constants

[`kAudioSessionInputRoute_BluetoothHFP`](/documentation/AudioToolbox/kAudioSessionInputRoute_BluetoothHFP)

A microphone that is part of a Bluetooth Hands-Free Profile (HFP) device.

[`kAudioSessionInputRoute_BuiltInMic`](/documentation/AudioToolbox/kAudioSessionInputRoute_BuiltInMic)

A built-in microphone input.

[`kAudioSessionInputRoute_HeadsetMic`](/documentation/AudioToolbox/kAudioSessionInputRoute_HeadsetMic)

A microphone that is part of a headset.

[`kAudioSessionInputRoute_LineIn`](/documentation/AudioToolbox/kAudioSessionInputRoute_LineIn)

A line in input

[`kAudioSessionInputRoute_USBAudio`](/documentation/AudioToolbox/kAudioSessionInputRoute_USBAudio)

A Universal Serial Bus (USB) input, accessed through the device 30-pin connector.

[`kAudioSessionOutputRoute_AirPlay`](/documentation/AudioToolbox/kAudioSessionOutputRoute_AirPlay)

An output on an AirPlay device.

[`kAudioSessionOutputRoute_BluetoothA2DP`](/documentation/AudioToolbox/kAudioSessionOutputRoute_BluetoothA2DP)

Speakers in a Bluetooth A2DP device.

[`kAudioSessionOutputRoute_BluetoothHFP`](/documentation/AudioToolbox/kAudioSessionOutputRoute_BluetoothHFP)

Speakers that are part of a Bluetooth Hands-Free Profile (HFP) accessory.

[`kAudioSessionOutputRoute_BuiltInReceiver`](/documentation/AudioToolbox/kAudioSessionOutputRoute_BuiltInReceiver)

The built-in speaker you hold to your ear when on a phone call.

[`kAudioSessionOutputRoute_BuiltInSpeaker`](/documentation/AudioToolbox/kAudioSessionOutputRoute_BuiltInSpeaker)

The primary built-in speaker.

[`kAudioSessionOutputRoute_HDMI`](/documentation/AudioToolbox/kAudioSessionOutputRoute_HDMI)

An output available through the HDMI interface.

[`kAudioSessionOutputRoute_Headphones`](/documentation/AudioToolbox/kAudioSessionOutputRoute_Headphones)

Speakers in headphones or in a headset.

[`kAudioSessionOutputRoute_LineOut`](/documentation/AudioToolbox/kAudioSessionOutputRoute_LineOut)

Analog line-level output.

[`kAudioSessionOutputRoute_USBAudio`](/documentation/AudioToolbox/kAudioSessionOutputRoute_USBAudio)

Speaker(s) in a Universal Serial Bus (USB) accessory, accessed through the device 30-pin connector.

[`kAudioSession_AudioRouteChangeKey_CurrentRouteDescription`](/documentation/AudioToolbox/kAudioSession_AudioRouteChangeKey_CurrentRouteDescription)

Describes the current audio route.

[`kAudioSession_AudioRouteChangeKey_PreviousRouteDescription`](/documentation/AudioToolbox/kAudioSession_AudioRouteChangeKey_PreviousRouteDescription)

Describes the previous audio route.

[`kAudioSession_AudioRouteKey_Inputs`](/documentation/AudioToolbox/kAudioSession_AudioRouteKey_Inputs)

An object containing details about audio input used in the current audio route.

[`kAudioSession_AudioRouteKey_Outputs`](/documentation/AudioToolbox/kAudioSession_AudioRouteKey_Outputs)

An object containing details about the audio output used in the current audio route.

[`kAudioSession_AudioRouteKey_Type`](/documentation/AudioToolbox/kAudioSession_AudioRouteKey_Type)

Audio routes input or output dictionary.

[`kAudioSession_InputSourceKey_Description`](/documentation/AudioToolbox/kAudioSession_InputSourceKey_Description)

Audio input source description.

[`kAudioSession_InputSourceKey_ID`](/documentation/AudioToolbox/kAudioSession_InputSourceKey_ID)

An audio input source.

[`kAudioSession_OutputDestinationKey_Description`](/documentation/AudioToolbox/kAudioSession_OutputDestinationKey_Description)

The audio output destination.

[`kAudioSession_OutputDestinationKey_ID`](/documentation/AudioToolbox/kAudioSession_OutputDestinationKey_ID)

The output destination.

[`kAudioSession_RouteChangeKey_Reason`](/documentation/AudioToolbox/kAudioSession_RouteChangeKey_Reason)

The reason for the audio route change.

### Enumerations

[Audio Session Interruption Types](/documentation/AudioToolbox/1618387-audio-session-interruption-types)

### Result Codes

[Audio Session Errors](/documentation/AudioToolbox/1618373-audio-session-errors)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)