<!--
{
  "availability" : [
    "iOS: 3.0.0 - 6.0.0",
    "iPadOS: 3.0.0 - 6.0.0",
    "macCatalyst: 14.0.0 - 14.0.0",
    "visionOS: 1.0.0 - 1.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "AVFAudio",
  "identifier" : "/documentation/AVFAudio/AVAudioSessionDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "AVFAudio"
    ],
    "preciseIdentifier" : "c:objc(pl)AVAudioSessionDelegate"
  },
  "title" : "AVAudioSessionDelegate"
}
-->

# AVAudioSessionDelegate

A protocol that defines responses to changes in state for the audio session.

```
protocol AVAudioSessionDelegate : NSObjectProtocol
```

## Overview

The delegate of an `AVAudioSession` object must adopt the `AVAudioSessionDelegate` protocol. The methods in this protocol are optional. They allow a delegate to respond to the following sorts of changes in state:

- Changes to the availability of audio input
- Audio session interruption, or end of audio session interruption

An `AVAudioSession` delegate can respond to interruptions at the audio session level. You can use this interface along with any iOS audio technology. For example, your `AVAudioSession` delegate can handle interruptions for OpenAL and audio unit playback.

When using the AVFoundation framework for recording or playback, you can also respond to interruptions at the individual recorder or player level. To do this, create audio recorder or audio player delegates using the protocols described in [`AVAudioRecorderDelegate`](/documentation/AVFAudio/AVAudioRecorderDelegate) and [`AVAudioPlayerDelegate`](/documentation/AVFAudio/AVAudioPlayerDelegate).

## Topics

### Delegate Methods

[`-  beginInterruption`](/documentation/AVFAudio/AVAudioSessionDelegate/beginInterruption())

Called after your audio session is interrupted.

[`-  endInterruption`](/documentation/AVFAudio/AVAudioSessionDelegate/endInterruption())

Called after your audio session interruption ends.

[`-  endInterruptionWithFlags:`](/documentation/AVFAudio/AVAudioSessionDelegate/endInterruption(withFlags:))

Called after your audio session interruption ends, with flags indicating the state of the audio session.

[`-  inputIsAvailableChanged:`](/documentation/AVFAudio/AVAudioSessionDelegate/inputIsAvailableChanged(_:))

Called after the availability of audio input changes on a device.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)