---
title: Playback interfaces
framework: AVKit
role: collectionGroup
role_heading: API Collection
path: avkit/avkit-playback-interfaces
---

# Playback interfaces

Present video with the system player, complete with transport controls and Picture in Picture.

## Overview

Overview AVKit provides the best way to build a playback interface for your app. The player it presents is the one people use in the apps that come with their devices, so its controls need no explanation. It also connects to the system features that surround playback, from Now Playing to Picture in Picture and AirPlay. Your work goes into your content instead of into controls. The same player provides the right playback experience on supported Apple platforms. Video expands to full screen on iPad and iPhone, and keeps playing in a corner when someone switches apps. The transport bar answers the remote on Apple TV, where the player can also offer what to watch next. On Mac, it sits in a window with trimming. On Apple Vision Pro it grows from inline video to a large screen or a fully immersive scene. As the system player gains new behavior, your app picks it up. For information about managing playback itself, see Media playback.

## Topics

### Standard player interfaces

- [Playing video content in a standard user interface](avkit/playing-video-content-in-a-standard-user-interface.md)
- [Customizing the tvOS playback experience](avkit/customizing-the-tvos-playback-experience.md)
- [Adopting the system player interface in visionOS](avkit/adopting-the-system-player-interface-in-visionos.md)
- [AVPlayerViewController](avkit/avplayerviewcontroller.md)
- [AVPlayerViewControllerDelegate](avkit/avplayerviewcontrollerdelegate.md)
- [AVPlayerView](avkit/avplayerview.md)
- [AVPlayerViewDelegate](avkit/avplayerviewdelegate.md)
- [VideoPlayer](avkit/videoplayer.md)

### Immersive and multiview media

- [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)
- [AVExperienceController](avkit/avexperiencecontroller.md)
- [AVMultiviewManager](avkit/avmultiviewmanager.md)
- [AVGroupExperienceCoordinator](avkit/avgroupexperiencecoordinator.md)
- [AVViewport](avkit/avviewport.md)
- [AVPortalViewport](avkit/avportalviewport.md)

### Interstitials and markers

- [Working with interstitial content](avkit/working-with-interstitial-content.md)
- [Presenting navigation markers](avkit/presenting-navigation-markers.md)
- [AVInterstitialTimeRange](avkit/avinterstitialtimerange.md)
- [AVNavigationMarkersGroup](avkit/avnavigationmarkersgroup.md)

### Content proposals and parental controls

- [Presenting content proposals in tvOS](avkit/presenting-content-proposals-in-tvos.md)
- [Working with overlays and parental controls in tvOS](avkit/working-with-overlays-and-parental-controls-in-tvos.md)
- [AVContentProposal](avkit/avcontentproposal.md)
- [AVContentProposalAction](avkit/avcontentproposalaction.md)
- [AVContentProposalViewController](avkit/avcontentproposalviewcontroller.md)

### Media trimming and export

- [Implementing trimming in a macOS player](avkit/implementing-trimming-in-a-macos-player.md)
- [Trimming and exporting media in visionOS](avkit/trimming-and-exporting-media-in-visionos.md)
- [AVPlayerViewTrimResult](avkit/avplayerviewtrimresult.md)

### Display management

- [AVDisplayManager](avkit/avdisplaymanager.md)
- [AVDisplayDynamicRange](avkit/avdisplaydynamicrange.md)

### Picture in Picture

- [Adopting Picture in Picture in a standard player](avkit/adopting-picture-in-picture-in-a-standard-player.md)
- [Adopting Picture in Picture in a custom player](avkit/adopting-picture-in-picture-in-a-custom-player.md)
- [Adopting Picture in Picture for video calls](avkit/adopting-picture-in-picture-for-video-calls.md)
- [Adopting Picture in Picture playback in tvOS](avkit/adopting-picture-in-picture-playback-in-tvos.md)
- [AVPictureInPictureController](avkit/avpictureinpicturecontroller.md)
- [AVPictureInPictureControllerDelegate](avkit/avpictureinpicturecontrollerdelegate.md)
- [AVPictureInPictureSampleBufferPlaybackDelegate](avkit/avpictureinpicturesamplebufferplaybackdelegate.md)
- [AVPictureInPictureVideoCallViewController](avkit/avpictureinpicturevideocallviewcontroller.md)
- [AVPlayerViewPictureInPictureDelegate](avkit/avplayerviewpictureinpicturedelegate.md)

### Media and content selection

- [AVLegibleMediaOptionsMenuController](avkit/avlegiblemediaoptionsmenucontroller.md)
- [AVLegibleMediaOptionsMenuState](avkit/avlegiblemediaoptionsmenustate.md)
- [AVContentSelectionViewController](avkit/avcontentselectionviewcontroller.md)

### Route selection

- [AVRoutePickerView](avkit/avroutepickerview.md)
- [AVRoutePickerViewDelegate](avkit/avroutepickerviewdelegate.md)
- [AVRoutePickerViewButtonStyle](avkit/avroutepickerviewbuttonstyle.md)

### Third-party casting

- [Third-party casting support](avkit/third-party-casting-support.md)

### Metadata identifiers

- [AVKit metadata identifiers](avkit/avkit-metadata-identifiers.md)

## See Also

### Essentials

- [Capture interfaces](avkit/avkit-capture-interfaces.md)
