<!--
{
  "availability" : [
    "macOS: 10.9.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVKit",
  "identifier" : "/documentation/AVKit/AVPlayerView",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVKit"
    ],
    "preciseIdentifier" : "c:objc(cs)AVPlayerView"
  },
  "title" : "AVPlayerView"
}
-->

# AVPlayerView

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

```
class AVPlayerView
```

## Overview

The player view supports several controls styles, ranging from no controls to controls matching the look of QuickTime Player. This makes it easy for you to tailor the presentation to best match your use of the player view. Regardless of the selected controls style, the player view always supports the following standard set of keyboard shortcuts to control playback:

- The Space bar plays and pauses playback.
- The right and left arrow keys step frame-by-frame through the video.
- JKL navigation:
- The J key rewinds. Press it multiple times to cycle through rewind speeds.
- The K key stops playback.
- The L key fast-forwards. Press it multiple times to cycle through fast-forward speeds.

The player view also makes it simple to add trimming capabilities to your player. Call the view’s [`beginTrimming(completionHandler:)`](/documentation/AVKit/AVPlayerView/beginTrimming(completionHandler:)) method to present a trimming UI that matches the QuickTime Player interface.

## Topics

### Customizing the user interface

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

The player view’s controls style.

[`AVPlayerViewControlsStyle`](/documentation/AVKit/AVPlayerViewControlsStyle)

Constants that indicate which user interface controls the view displays.

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

A Boolean value that determines whether the player view displays frame stepping buttons.

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

A Boolean value that determines whether the player view displays a sharing service button.

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

A Boolean value that determines whether the player view displays a full-screen toggle button.

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

A Boolean value that determines whether the player view displays timecodes, if available.

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

A view that adds additional custom views between the video content and the controls.

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

An action pop-up button menu that the player view displays.

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

A Boolean value that indicates whether the player view controller updates the Now Playing info center.

### Customizing the video presentation

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

A Boolean value that indicates whether the current player item’s first video frame is ready for display.

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

The current size and position of the video image that displays within the player view’s bounds.

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

A value that determines how the player view displays video content within its bounds.

### Configuring frame analysis

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

A Boolean value that indicates whether to perform video frame analysis.

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

[`AVVideoFrameAnalysisType`](/documentation/AVKit/AVVideoFrameAnalysisType)

Constants that define the types of analysis a player view controller may perform on a paused video frame.

### Configuring the playback speed

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

A list of user-selectable playback speeds to show in the playback speed control.

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

The currently selected playback speed.

[`selectSpeed(_:)`](/documentation/AVKit/AVPlayerView/selectSpeed(_:))

Selects a specified playback speed.

[`AVPlaybackSpeed`](/documentation/AVKit/AVPlaybackSpeed)

An object that represents a user-selectable playback speed in a playback user interface.

### Configuring picture in picture

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

A Boolean value that determines whether the player view allows Picture in Picture playback.

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

The Picture in Picture delegate object.

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

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

### Magnifying video

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

A Boolean value that indicates whether the magnify gesture changes the video’s view magnification.

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

The factor by which the video’s view is currently scaled.

[`setMagnification(_:centeredAt:)`](/documentation/AVKit/AVPlayerView/setMagnification(_:centeredAt:))

Scales the video’s view by a specified factor, and centers the result on a specified point.

### Displaying the chapter and title

[`flashChapterNumber(_:chapterTitle:)`](/documentation/AVKit/AVPlayerView/flashChapterNumber(_:chapterTitle:))

Displays the chapter number and title in the player view for a brief moment.

### Trimming media

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

A Boolean value that indicates whether the player view can begin trimming.

[`beginTrimming(completionHandler:)`](/documentation/AVKit/AVPlayerView/beginTrimming(completionHandler:))

Puts the player view into trimming mode.

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

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

### Setting the player object

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

The player instance that provides the media content for the view.

### Setting the delegate object

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

The player view’s delegate object.

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

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

### High dynamic range

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

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

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

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



---

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)