# MediaItem.ClippingConfiguration.Builder

Artifact: [androidx.media3:media3-common](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/common/MediaItem.java+class:androidx.media3.common.MediaItem.ClippingConfiguration.Builder)

*** ** * ** ***


```
public final class MediaItem.ClippingConfiguration.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#Builder()()` Creates a new instance with default values. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration` | `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#build()()` Returns a `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration` instance initialized with the values of this builder. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingProperties` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi [buildClippingProperties](https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#buildClippingProperties())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#build()` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi @https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setAllowUnseekableMedia(boolean)(boolean allowUnseekableMedia)` Sets whether clipping to a non-zero start position in unseekable media is allowed (Default: `false`). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setEndPositionMs(long)(long endPositionMs)` Sets the optional end position in milliseconds which must be a value larger than or equal to zero, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()` to end when playback reaches the end of media (Default: `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()`). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi @https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setEndPositionUs(long)(long endPositionUs)` Sets the optional end position in milliseconds which must be a value larger than or equal to zero, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()` to end when playback reaches the end of media (Default: `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()`). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setRelativeToDefaultPosition(boolean)(boolean relativeToDefaultPosition)` Sets whether the start position and the end position are relative to the default position in the window (Default: `false`). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setRelativeToLiveWindow(boolean)(boolean relativeToLiveWindow)` Sets whether the start/end positions should move with the live window for live streams. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartPositionMs(long)(@https://developer.android.com/reference/androidx/annotation/IntRange(from = 0) long startPositionMs)` Sets the optional start position in milliseconds which must be a value larger than or equal to zero (Default: 0). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://developer.android.com/reference/androidx/media3/common/util/UnstableApi @https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartPositionUs(long)(@https://developer.android.com/reference/androidx/annotation/IntRange(from = 0) long startPositionUs)` Sets the optional start position in microseconds which must be a value larger than or equal to zero (Default: 0). |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#setStartsAtKeyFrame(boolean)(boolean startsAtKeyFrame)` Sets whether the start point is guaranteed to be a key frame. |

## Public constructors

### Builder

```
public Builder()
```

Creates a new instance with default values.

## Public methods

### build

```
public MediaItem.ClippingConfiguration build()
```

Returns a `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration` instance initialized with the values of this builder.

### buildClippingProperties

```
@UnstableApi
public MediaItem.ClippingProperties [buildClippingProperties](https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#buildClippingProperties())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/common/MediaItem.ClippingConfiguration.Builder#build()` instead.

### setAllowUnseekableMedia

```
@UnstableApi
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setAllowUnseekableMedia(boolean allowUnseekableMedia)
```

Sets whether clipping to a non-zero start position in unseekable media is allowed (Default: `false`).

Note that this could be inefficient because a player needs to read and decode all samples from the beginning of the file and it should only be used if the clip start position is small and the entire data before the start position fits into memory.

### setEndPositionMs

```
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setEndPositionMs(long endPositionMs)
```

Sets the optional end position in milliseconds which must be a value larger than or equal to zero, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()` to end when playback reaches the end of media (Default: `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()`).

### setEndPositionUs

```
@UnstableApi
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setEndPositionUs(long endPositionUs)
```

Sets the optional end position in milliseconds which must be a value larger than or equal to zero, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()` to end when playback reaches the end of media (Default: `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()`).

### setRelativeToDefaultPosition

```
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setRelativeToDefaultPosition(boolean relativeToDefaultPosition)
```

Sets whether the start position and the end position are relative to the default position in the window (Default: `false`).

### setRelativeToLiveWindow

```
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setRelativeToLiveWindow(boolean relativeToLiveWindow)
```

Sets whether the start/end positions should move with the live window for live streams. If `false`, live streams end when playback reaches the end position in live window seen when the media is first loaded (Default: `false`).

### setStartPositionMs

```
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setStartPositionMs(@IntRange(from = 0) long startPositionMs)
```

Sets the optional start position in milliseconds which must be a value larger than or equal to zero (Default: 0).

### setStartPositionUs

```
@UnstableApi
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setStartPositionUs(@IntRange(from = 0) long startPositionUs)
```

Sets the optional start position in microseconds which must be a value larger than or equal to zero (Default: 0).

### setStartsAtKeyFrame

```
@CanIgnoreReturnValue
public MediaItem.ClippingConfiguration.Builder setStartsAtKeyFrame(boolean startsAtKeyFrame)
```

Sets whether the start point is guaranteed to be a key frame. If `false`, the playback transition into the clip may not be seamless (Default: `false`).