# PictureInPictureDelegate

Artifact: [androidx.core:core-pip](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/pip/PictureInPictureDelegate.kt+class:androidx.core.pip.PictureInPictureDelegate) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

*** ** * ** ***


```
open class PictureInPictureDelegate
```

<br />

Known direct subclasses [BasicPictureInPicture](https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | Basic Picture-in-Picture implementation. |

Known indirect subclasses [VideoPlaybackPictureInPicture](https://developer.android.com/reference/kotlin/androidx/core/pip/VideoPlaybackPictureInPicture)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/VideoPlaybackPictureInPicture` | Picture-in-Picture implementation optimized for Video Playback applications. |

*** ** * ** ***

A delegate class to help set up PiP (Picture-in-Picture) functionalities on behalf of the given `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureProvider` instance.

It's highly recommended to choose one of the implementations: `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture`, `https://developer.android.com/reference/kotlin/androidx/core/pip/VideoPlaybackPictureInPicture` instead of using this class directly.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.Event` Represents the PiP event emitted from the system. |
| `interface https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` Unified listener interface for `https://developer.android.com/reference/android/app/Activity.html#onPictureInPictureModeChanged(boolean)` and `https://developer.android.com/reference/android/app/Activity.html#onPictureInPictureUiStateChanged(android.app.PictureInPictureUiState)` callbacks. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate#PictureInPictureDelegate(androidx.core.app.PictureInPictureProvider)( pictureInPictureProvider: https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureProvider )` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate#addOnPictureInPictureEventListener(java.util.concurrent.Executor,androidx.core.pip.PictureInPictureDelegate.OnPictureInPictureEventListener)( executor: https://developer.android.com/reference/java/util/concurrent/Executor.html, listener: https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener )` Adds `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` for events sent from system. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate#removeOnPictureInPictureEventListener(androidx.core.pip.PictureInPictureDelegate.OnPictureInPictureEventListener)( listener: https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener )` Removes `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` for events sent from system. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate#setPictureInPictureParams(androidx.core.app.PictureInPictureParamsCompat)( pictureInPictureParamsCompat: https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat )` Sets the `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat` instance for PiP. |

## Public constructors

### PictureInPictureDelegate

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
PictureInPictureDelegate(
    pictureInPictureProvider: PictureInPictureProvider
)
```

| Parameters |
|---|---|
| `pictureInPictureProvider: https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureProvider` | `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureProvider` instance that this delegate will call into for actual Picture-in-Picture functionalities. |

## Public functions

### addOnPictureInPictureEventListener

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
fun addOnPictureInPictureEventListener(
    executor: Executor,
    listener: PictureInPictureDelegate.OnPictureInPictureEventListener
): Unit
```

Adds `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` for events sent from system.

### removeOnPictureInPictureEventListener

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
fun removeOnPictureInPictureEventListener(
    listener: PictureInPictureDelegate.OnPictureInPictureEventListener
): Unit
```

Removes `https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` for events sent from system.

### setPictureInPictureParams

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
fun setPictureInPictureParams(
    pictureInPictureParamsCompat: PictureInPictureParamsCompat
): Unit
```

Sets the `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat` instance for PiP.

| Parameters |
|---|---|
| `pictureInPictureParamsCompat: https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat` | `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat` instance to set, and it's subjected to be changed. For instance, the aspectRatio would be capped in between the minimal and maximum allowed aspectRatio; and the sourceRectHint would be center cropped to match the aspectRatio. |