---
title: AVPictureInPictureController
framework: avkit
role: symbol
role_heading: Class
path: avkit/avpictureinpicturecontroller
---

# AVPictureInPictureController

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

## Declaration

```swift
class AVPictureInPictureController
```

## Mentioned in

Adopting Picture in Picture in a Custom Player Adopting Picture in Picture for video calls

## Overview

Overview To use Picture in Picture, you need to configure your app to support background audio playback. See Configuring your app for media playback for more details. Before presenting a user interface to start Picture in Picture, call the isPictureInPictureSupported() method to determine if the current device supports the feature, and check the isPictureInPicturePossible property value to determine whether PiP is possible in the current context. important: The framework doesn’t support subclassing AVPictureInPictureController.

## Topics

### Creating a Controller

- [init(contentSource:)](avkit/avpictureinpicturecontroller/init(contentsource:).md)
- [init(playerLayer:)](avkit/avpictureinpicturecontroller/init(playerlayer:).md)

### Configuring the Content Source

- [contentSource](avkit/avpictureinpicturecontroller/contentsource-swift.property.md)
- [AVPictureInPictureController.ContentSource](avkit/avpictureinpicturecontroller/contentsource-swift.class.md)

### Accessing the Player Layer

- [playerLayer](avkit/avpictureinpicturecontroller/playerlayer.md)

### Configuring Playback Behavior

- [requiresLinearPlayback](avkit/avpictureinpicturecontroller/requireslinearplayback.md)

### Accessing the Delegate Object

- [delegate](avkit/avpictureinpicturecontroller/delegate.md)
- [AVPictureInPictureControllerDelegate](avkit/avpictureinpicturecontrollerdelegate.md)

### Accessing Picture in Picture State

- [isPictureInPictureSupported()](avkit/avpictureinpicturecontroller/ispictureinpicturesupported().md)
- [isPictureInPicturePossible](avkit/avpictureinpicturecontroller/ispictureinpicturepossible.md)
- [isPictureInPictureActive](avkit/avpictureinpicturecontroller/ispictureinpictureactive.md)
- [isPictureInPictureSuspended](avkit/avpictureinpicturecontroller/ispictureinpicturesuspended.md)

### Controlling Picture in Picture Playback

- [canStopPictureInPicture](avkit/avpictureinpicturecontroller/canstoppictureinpicture.md)
- [canStartPictureInPictureAutomaticallyFromInline](avkit/avpictureinpicturecontroller/canstartpictureinpictureautomaticallyfrominline.md)
- [startPictureInPicture()](avkit/avpictureinpicturecontroller/startpictureinpicture().md)
- [stopPictureInPicture()](avkit/avpictureinpicturecontroller/stoppictureinpicture().md)
- [invalidatePlaybackState()](avkit/avpictureinpicturecontroller/invalidateplaybackstate().md)

### Retrieving Picture in Picture Template Images

- [pictureInPictureButtonStartImage](avkit/avpictureinpicturecontroller/pictureinpicturebuttonstartimage.md)
- [pictureInPictureButtonStopImage](avkit/avpictureinpicturecontroller/pictureinpicturebuttonstopimage.md)
- [pictureInPictureButtonStartImage(compatibleWith:)](avkit/avpictureinpicturecontroller/pictureinpicturebuttonstartimage(compatiblewith:).md)
- [pictureInPictureButtonStopImage(compatibleWith:)](avkit/avpictureinpicturecontroller/pictureinpicturebuttonstopimage(compatiblewith:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Picture in Picture

- [Adopting Picture in Picture Playback in tvOS](avkit/adopting-picture-in-picture-playback-in-tvos.md)
- [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)
- [Accessing the camera while multitasking on iPad](avkit/accessing-the-camera-while-multitasking-on-ipad.md)
