# BasicPictureInPicture

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/PictureInPictureImpl.kt+class:androidx.core.pip.BasicPictureInPicture) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

*** ** * ** ***


```
open class BasicPictureInPicture : PictureInPictureDelegate
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.core.pip.PictureInPictureDelegate](https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate) ||
|   | ↳ | [androidx.core.pip.BasicPictureInPicture](https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture) |

Known direct 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. |

*** ** * ** ***

Basic Picture-in-Picture implementation.

Configures PiP with a specific aspect ratio, custom actions, and controls enter behavior. Seamless resize is disabled and no sourceRectHint is used.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#BasicPictureInPicture(androidx.core.app.PictureInPictureProvider,java.util.concurrent.Executor)( pictureInPictureProvider: https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureProvider, executor: https://developer.android.com/reference/java/util/concurrent/Executor.html )` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#commit()()` Commits the changes made through the setter methods and applies them to the current Picture-in-Picture session. |
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#setActions(kotlin.collections.List)(actions: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/app/RemoteAction.html>)` Sets the custom actions to be available in the Picture-in-Picture menu. |
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#setAspectRatio(android.util.Rational)(aspectRatio: https://developer.android.com/reference/android/util/Rational.html)` Sets the desired aspect ratio for the Picture-in-Picture window. |
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#setEnabled(kotlin.Boolean)(enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether the activity should automatically enter Picture-in-Picture mode when eligible (e.g., when swiping to home). |

| ### Protected properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#pictureInPictureParamsBuilder()` |

### Inherited functions

From [androidx.core.pip.PictureInPictureDelegate](https://developer.android.com/reference/kotlin/androidx/core/pip/PictureInPictureDelegate) `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

### BasicPictureInPicture

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

```
BasicPictureInPicture(
    pictureInPictureProvider: PictureInPictureProvider,
    executor: Executor
)
```

| 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. |
| `executor: https://developer.android.com/reference/java/util/concurrent/Executor.html` | The executor to use for applying the Picture-in-Picture parameters. It is recommended to use a background executor to offload these framework calls from the main thread. |

## Public functions

### commit

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

```
fun commit(): Unit
```

Commits the changes made through the setter methods and applies them to the current Picture-in-Picture session.

This method builds the `https://developer.android.com/reference/kotlin/androidx/core/app/PictureInPictureParamsCompat` and schedules an update using the executor provided at construction.

### setActions

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

```
fun setActions(actions: List<RemoteAction>): BasicPictureInPicture
```

Sets the custom actions to be available in the Picture-in-Picture menu.

Callers must invoke `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#commit()` to apply the changes.

| Parameters |
|---|---|
| `actions: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/app/RemoteAction.html>` | A list of RemoteActions. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | This implementation instance for chaining. |

### setAspectRatio

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

```
fun setAspectRatio(aspectRatio: Rational): BasicPictureInPicture
```

Sets the desired aspect ratio for the Picture-in-Picture window.

Callers must invoke `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#commit()` to apply the changes.

| Parameters |
|---|---|
| `aspectRatio: https://developer.android.com/reference/android/util/Rational.html` | The desired width/height ratio. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | This implementation instance for chaining. |

### setEnabled

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

```
fun setEnabled(enabled: Boolean): BasicPictureInPicture
```

Sets whether the activity should automatically enter Picture-in-Picture mode when eligible (e.g., when swiping to home). This indicates the "willingness to enter PiP".

Callers must invoke `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture#commit()` to apply the changes.

| Parameters |
|---|---|
| `enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the Activity is PiP-able, false otherwise. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/pip/BasicPictureInPicture` | This implementation instance for chaining. |

## Protected properties

### pictureInPictureParamsBuilder

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

```
protected val pictureInPictureParamsBuilder: PictureInPictureParamsCompat.Builder
```