---
title: AVExperienceController
framework: avkit
role: symbol
role_heading: Class
path: avkit/avexperiencecontroller
---

# AVExperienceController

An object that controls video experiences.

## Declaration

```swift
@MainActor final class AVExperienceController
```

## Overview

Overview Use this class to control, observe, and respond to experience changes for an AVPlayerViewController. A player view controller’s presentation APIs will no longer be honored after attaching an experience controller. Using the other presentation APIs may preclude the use of this class.

## Topics

### Configuring the experience

- [allowedExperiences](avkit/avexperiencecontroller/allowedexperiences.md)
- [availableExperiences](avkit/avexperiencecontroller/availableexperiences.md)
- [AVExperienceController.Experiences](avkit/avexperiencecontroller/experiences.md)
- [experience](avkit/avexperiencecontroller/experience-swift.property.md)
- [AVExperienceController.Experience](avkit/avexperiencecontroller/experience-swift.enum.md)
- [configuration](avkit/avexperiencecontroller/configuration-swift.property.md)
- [AVExperienceController.Configuration](avkit/avexperiencecontroller/configuration-swift.struct.md)

### Transitioning experiences

- [AVExperienceController.TransitionGroup](avkit/avexperiencecontroller/transitiongroup.md)
- [withTransitionGroup(body:)](avkit/avexperiencecontroller/withtransitiongroup(body:).md)
- [transition(to:)](avkit/avexperiencecontroller/transition(to:).md)

### Configuring a delegate

- [delegate](avkit/avexperiencecontroller/delegate-swift.property.md)
- [AVExperienceController.Delegate](avkit/avexperiencecontroller/delegate-swift.protocol.md)

### Structures

- [AVExperienceController.ExpandedConfiguration](avkit/avexperiencecontroller/expandedconfiguration.md)
- [AVExperienceController.TransitionContext](avkit/avexperiencecontroller/transitioncontext.md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### visionOS playback

- [Playing immersive media with AVKit](avkit/playing-immersive-media-with-avkit.md)
- [Creating a multiview video playback experience in visionOS](avkit/creating-a-multiview-video-playback-experience-in-visionos.md)
- [Adopting the system player interface in visionOS](avkit/adopting-the-system-player-interface-in-visionos.md)
- [Trimming and exporting media in visionOS](avkit/trimming-and-exporting-media-in-visionos.md)
- [AVPlayerViewController](avkit/avplayerviewcontroller.md)
- [AVPlayerViewControllerDelegate](avkit/avplayerviewcontrollerdelegate.md)
- [AVMultiviewManager](avkit/avmultiviewmanager.md)
- [AVGroupExperienceCoordinator](avkit/avgroupexperiencecoordinator.md)
- [AVViewport](avkit/avviewport.md)
- [AVPortalViewport](avkit/avportalviewport.md)
- [Third-party casting support](avkit/third-party-casting-support.md)
