# DefaultAudioTrackBufferSizeProvider.Builder

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

*** ** * ** ***


```
public class DefaultAudioTrackBufferSizeProvider.Builder
```

<br />

*** ** * ** ***

A builder to create `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#Builder()()` Creates a new builder. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#build()()` Build the `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setAc3BufferMultiplicationFactor(int)(int ac3BufferMultiplicationFactor)` Sets the multiplication factor to apply to the passthrough buffer for AC3 to avoid underruns on some devices (e.g., Broadcom 7271). |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setDtshdBufferMultiplicationFactor(int)( int dtshdBufferMultiplicationFactor )` Sets the multiplication factor to apply to the passthrough buffer for DTS-HD (DTS Express) to avoid underruns. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html [setMaxPcmBufferDurationUs](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setMaxPcmBufferDurationUs(int))(int maxPcmBufferDurationUs)` **This method is deprecated.** This constraint does not apply to the new default fixed buffer size logic. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html [setMinPcmBufferDurationUs](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setMinPcmBufferDurationUs(int))(int minPcmBufferDurationUs)` **This method is deprecated.** This constraint does not apply to the new default fixed buffer size logic. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setOffloadBufferDurationUs(int)(int offloadBufferDurationUs)` The length for offload `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setPassthroughBufferDurationUs(int)(int passthroughBufferDurationUs)` Sets the length for passthrough `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html [setPcmBufferMultiplicationFactor](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setPcmBufferMultiplicationFactor(int))(int pcmBufferMultiplicationFactor)` **This method is deprecated.** Use the default fixed buffer size logic instead, or configure a fixed target using `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setTargetPcmBufferDurationUs(int)`. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setTargetPcmBufferDurationUs(int)(int targetPcmBufferDurationUs)` Sets the target length for PCM `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. |

## Public constructors

### Builder

```
public Builder()
```

Creates a new builder.

## Public methods

### build

```
public DefaultAudioTrackBufferSizeProvider build()
```

Build the `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider`.

### setAc3BufferMultiplicationFactor

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder setAc3BufferMultiplicationFactor(int ac3BufferMultiplicationFactor)
```

Sets the multiplication factor to apply to the passthrough buffer for AC3 to avoid underruns on some devices (e.g., Broadcom 7271). Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#AC3_BUFFER_MULTIPLICATION_FACTOR()`.

### setDtshdBufferMultiplicationFactor

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder setDtshdBufferMultiplicationFactor(
    int dtshdBufferMultiplicationFactor
)
```

Sets the multiplication factor to apply to the passthrough buffer for DTS-HD (DTS Express) to avoid underruns. Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#DTSHD_BUFFER_MULTIPLICATION_FACTOR()`.

### setMaxPcmBufferDurationUs

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder [setMaxPcmBufferDurationUs](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setMaxPcmBufferDurationUs(int))(int maxPcmBufferDurationUs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> This constraint does not apply to the new default fixed buffer size logic. Use `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setTargetPcmBufferDurationUs(int)` to configure a fixed buffer size instead. This is only used if `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setPcmBufferMultiplicationFactor(int)` is explicitly set to enable deprecated dynamic logic.

Sets the maximum length for PCM `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#MAX_PCM_BUFFER_DURATION_US()`.

### setMinPcmBufferDurationUs

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder [setMinPcmBufferDurationUs](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setMinPcmBufferDurationUs(int))(int minPcmBufferDurationUs)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> This constraint does not apply to the new default fixed buffer size logic. Use `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setTargetPcmBufferDurationUs(int)` to configure a fixed buffer size instead. This is only used if `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setPcmBufferMultiplicationFactor(int)` is explicitly set to enable deprecated dynamic logic.

Sets the minimum length for PCM `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#MIN_PCM_BUFFER_DURATION_US()`.

### setOffloadBufferDurationUs

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder setOffloadBufferDurationUs(int offloadBufferDurationUs)
```

The length for offload `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#OFFLOAD_BUFFER_DURATION_US()`.

### setPassthroughBufferDurationUs

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder setPassthroughBufferDurationUs(int passthroughBufferDurationUs)
```

Sets the length for passthrough `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds. Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#PASSTHROUGH_BUFFER_DURATION_US()`.

### setPcmBufferMultiplicationFactor

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder [setPcmBufferMultiplicationFactor](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setPcmBufferMultiplicationFactor(int))(int pcmBufferMultiplicationFactor)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use the default fixed buffer size logic instead, or configure a fixed target using `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider.Builder#setTargetPcmBufferDurationUs(int)`. Pass `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` to not use this factor.

Sets the multiplication factor to apply to the minimum buffer size requested. Default is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioTrackBufferSizeProvider#PCM_BUFFER_MULTIPLICATION_FACTOR()`.

Calling this method with a value other than `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` enables the deprecated dynamic buffer size logic.

### setTargetPcmBufferDurationUs

```
@CanIgnoreReturnValue
public DefaultAudioTrackBufferSizeProvider.Builder setTargetPcmBufferDurationUs(int targetPcmBufferDurationUs)
```

Sets the target length for PCM `https://developer.android.com/reference/android/media/AudioTrack.html` buffers, in microseconds.