<!--
{
  "documentType" : "article",
  "framework" : "AVKit",
  "identifier" : "/documentation/AVKit/AVKit-playback-interfaces",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Playback interfaces"
}
-->

# Playback interfaces

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

## 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 <doc://com.apple.documentation/documentation/AVFoundation/media-playback>.

## Topics

### Standard player interfaces

[Playing video content in a standard user interface](/documentation/AVKit/playing-video-content-in-a-standard-user-interface)

Play media full screen, embedded inline, or in a floating Picture in Picture (PiP) window using a player view controller.

[Customizing the tvOS playback experience](/documentation/AVKit/customizing-the-tvos-playback-experience)

Adopt the latest features of the redesigned tvOS player user interface to provide a more streamlined way to watch your content.

[Adopting the system player interface in visionOS](/documentation/AVKit/adopting-the-system-player-interface-in-visionos)

Provide an optimized viewing experience for watching 3D video content.

[`class AVPlayerViewController`](/documentation/AVKit/AVPlayerViewController)

A view controller that displays content from a player and presents a native user interface to control playback.

[`protocol AVPlayerViewControllerDelegate`](/documentation/AVKit/AVPlayerViewControllerDelegate)

A protocol that defines the methods to implement to respond to player view controller events.

[`class AVPlayerView`](/documentation/AVKit/AVPlayerView)

A view that displays content from a player and presents a native user interface to control playback.

[`protocol AVPlayerViewDelegate`](/documentation/AVKit/AVPlayerViewDelegate)

A protocol that defines the methods to implement to participate in the player view’s full-screen presentation life cycle.

[`struct VideoPlayer`](/documentation/AVKit/VideoPlayer)

A view that displays content from a player and a native user interface to control playback.

### Immersive and multiview media

[Playing immersive media with AVKit](/documentation/AVKit/playing-immersive-media-with-avkit)

Adopt the system playback interface to provide an immersive video watching experience.

[Creating a multiview video playback experience in visionOS](/documentation/AVKit/creating-a-multiview-video-playback-experience-in-visionos)

Build an interface that plays multiple videos simultaneously and handles transitions to different experience types gracefully.

[`class AVExperienceController`](/documentation/AVKit/AVExperienceController)

An object that controls video experiences.

[`class AVMultiviewManager`](/documentation/AVKit/AVMultiviewManager)

An object that manages viewing multiple videos at once.

[`class AVGroupExperienceCoordinator`](/documentation/AVKit/AVGroupExperienceCoordinator)

An object that synchronizes viewing environment state across participants in a SharePlay session.

[`class AVViewport`](/documentation/AVKit/AVViewport)

An object that provides configuration options for how the player displays content in different viewing contexts.

[`class AVPortalViewport`](/documentation/AVKit/AVPortalViewport)

An object that defines the visual parameters for content displayed within a portal frame.

### Interstitials and markers

[Working with interstitial content](/documentation/AVKit/working-with-interstitial-content)

Present additional content alongside your main media presentation using HTTP Live Streaming support.

[Presenting navigation markers](/documentation/AVKit/presenting-navigation-markers)

Present navigation markers in the Chapters panel to help users quickly navigate your content.

[`class AVInterstitialTimeRange`](/documentation/AVKit/AVInterstitialTimeRange)

A time range in an audiovisual presentation for content with an interstitial designation, such as advertisements or legal notices.

[`class AVNavigationMarkersGroup`](/documentation/AVKit/AVNavigationMarkersGroup)

A set of markers for navigating playback of an audiovisual presentation.

### Content proposals and parental controls

[Presenting content proposals in tvOS](/documentation/AVKit/presenting-content-proposals-in-tvos)

Display a preview of an upcoming media item at the conclusion of the currently playing media item.

[Working with overlays and parental controls in tvOS](/documentation/AVKit/working-with-overlays-and-parental-controls-in-tvos)

Add interactive overlays, parental controls, and livestream channel flipping using a player view controller.

[`class AVContentProposal`](/documentation/AVKit/AVContentProposal)

An object that describes the content to propose playing after the current item finishes.

[`enum AVContentProposalAction`](/documentation/AVKit/AVContentProposalAction)

Constant that indicate the action a user takes when dismissing a content proposal.

[`class AVContentProposalViewController`](/documentation/AVKit/AVContentProposalViewController)

A view controller that proposes content to watch next.

### Media trimming and export

[Implementing trimming in a macOS player](/documentation/AVKit/implementing-trimming-in-a-macos-player)

Provide a QuickTime media-trimming experience in your macOS app.

[Trimming and exporting media in visionOS](/documentation/AVKit/trimming-and-exporting-media-in-visionos)

Display standard controls in your app to edit the timeline of the currently playing media.

[`enum AVPlayerViewTrimResult`](/documentation/AVKit/AVPlayerViewTrimResult)

Constants that specify an action a user takes when trimming media in a player view.

### Display management

[`class AVDisplayManager`](/documentation/AVKit/AVDisplayManager)

A tvOS management object that controls whether a TV switches modes to match the video’s native mode.

[`enum AVDisplayDynamicRange`](/documentation/AVKit/AVDisplayDynamicRange)

Describes how High Dynamic Range (HDR) video content renders.

### Picture in Picture

[Adopting Picture in Picture in a standard player](/documentation/AVKit/adopting-picture-in-picture-in-a-standard-player)

Add Picture in Picture (PiP) playback to your app using a player view controller.

[Adopting Picture in Picture in a custom player](/documentation/AVKit/adopting-picture-in-picture-in-a-custom-player)

Add controls to your custom player user interface to invoke Picture in Picture (PiP) playback.

[Adopting Picture in Picture for video calls](/documentation/AVKit/adopting-picture-in-picture-for-video-calls)

Add multitasking capability to your video-call apps by using Picture in Picture (PiP).

[Adopting Picture in Picture playback in tvOS](/documentation/AVKit/adopting-picture-in-picture-playback-in-tvos)

Add advanced multitasking capabilities to your video apps by using Picture in Picture playback in tvOS.

[`class AVPictureInPictureController`](/documentation/AVKit/AVPictureInPictureController)

A controller that responds to user-initiated Picture in Picture playback of video in a floating, resizable window.

[`protocol AVPictureInPictureControllerDelegate`](/documentation/AVKit/AVPictureInPictureControllerDelegate)

A protocol to adopt to respond to Picture in Picture events.

[`protocol AVPictureInPictureSampleBufferPlaybackDelegate`](/documentation/AVKit/AVPictureInPictureSampleBufferPlaybackDelegate)

A protocol for controlling playback from a sample buffer display layer in Picture in Picture.

[`class AVPictureInPictureVideoCallViewController`](/documentation/AVKit/AVPictureInPictureVideoCallViewController)

A view controller that presents content from a video call in Picture in Picture.

[`protocol AVPlayerViewPictureInPictureDelegate`](/documentation/AVKit/AVPlayerViewPictureInPictureDelegate)

A protocol that defines the methods to implement to respond to Picture in Picture playback events.

### Media and content selection

[`class AVLegibleMediaOptionsMenuController`](/documentation/AVKit/AVLegibleMediaOptionsMenuController)

[`struct AVLegibleMediaOptionsMenuState`](/documentation/AVKit/AVLegibleMediaOptionsMenuState)

[`class AVContentSelectionViewController`](/documentation/AVKit/AVContentSelectionViewController)

A view controller for providing additional UI to the multiview experience.

### Route selection

[`class AVRoutePickerView`](/documentation/AVKit/AVRoutePickerView)

A view that presents a list of nearby media receivers.

[`protocol AVRoutePickerViewDelegate`](/documentation/AVKit/AVRoutePickerViewDelegate)

A protocol that defines the methods to adopt to respond to route picker view presentation events.

[`enum AVRoutePickerViewButtonStyle`](/documentation/AVKit/AVRoutePickerViewButtonStyle)

Constants that define the button styles a route picker view supports.

[`enum AVAudioSessionRouteSelection : NSInteger;`](/documentation/AVKit/AVAudioSessionRouteSelection)

Constants that indicate the audio route selection.

### Third-party casting

[Third-party casting support](/documentation/AVKit/third-party-casting-support)

Provide custom playback controls for third-party casting services and other media sources.

### Metadata identifiers

[AVKit metadata identifiers](/documentation/AVKit/avkit-metadata-identifiers)

Additional metadata that an asset contains.



---

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)