---
title: ARSessionObserver
framework: arkit
role: symbol
role_heading: Protocol
path: arkit/arsessionobserver
---

# ARSessionObserver

Methods you can implement to respond to changes in the state of an AR session.

## Declaration

```swift
protocol ARSessionObserver : NSObjectProtocol
```

## Mentioned in

Managing Session Life Cycle and Tracking Quality

## Overview

Overview This protocol defines optional methods common to the ARSessionDelegate, ARSCNViewDelegate, and ARSKViewDelegate protocols. You can implement this protocol’s methods when adopting one of those protocols.

## Topics

### Responding to Tracking Quality Changes

- [session(_:cameraDidChangeTrackingState:)](arkit/arsessionobserver/session(_:cameradidchangetrackingstate:).md)
- [session(_:didChange:)](arkit/arsessionobserver/session(_:didchange:).md)

### Handling Interruptions

- [sessionWasInterrupted(_:)](arkit/arsessionobserver/sessionwasinterrupted(_:).md)
- [sessionInterruptionEnded(_:)](arkit/arsessionobserver/sessioninterruptionended(_:).md)
- [sessionShouldAttemptRelocalization(_:)](arkit/arsessionobserver/sessionshouldattemptrelocalization(_:).md)

### Receiving Audio Data

- [session(_:didOutputAudioSampleBuffer:)](arkit/arsessionobserver/session(_:didoutputaudiosamplebuffer:).md)

### Handling Errors

- [session(_:didFailWithError:)](arkit/arsessionobserver/session(_:didfailwitherror:).md)
- [ARErrorDomain](arkit/arerrordomain.md)

### Managing Collaboration

- [session(_:didOutputCollaborationData:)](arkit/arsessionobserver/session(_:didoutputcollaborationdata:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Inherited By

- [ARSCNViewDelegate](arkit/arscnviewdelegate.md)
- [ARSKViewDelegate](arkit/arskviewdelegate.md)
- [ARSessionDelegate](arkit/arsessiondelegate.md)

## See Also

### Responding to events

- [delegate](arkit/arsession/delegate.md)
- [delegateQueue](arkit/arsession/delegatequeue.md)
- [ARSessionDelegate](arkit/arsessiondelegate.md)
