# AudioTrackAudioOutputProvider.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/AudioTrackAudioOutputProvider.java+class:androidx.media3.exoplayer.audio.AudioTrackAudioOutputProvider.Builder)

*** ** * ** ***


```
public final class AudioTrackAudioOutputProvider.Builder
```

<br />

*** ** * ** ***

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

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder#Builder(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Context.html context)` Creates a new builder. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder#build()()` Builds the `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.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/exoplayer/audio/AudioTrackAudioOutputProvider.Builder#setAudioOffloadSupportProvider(androidx.media3.exoplayer.audio.DefaultAudioSink.AudioOffloadSupportProvider)( https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioOffloadSupportProvider audioOffloadSupportProvider )` Sets an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioOffloadSupportProvider` to provide the provider's offload support capabilities for a given `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.FormatConfig` for calls to `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider#getFormatSupport(androidx.media3.exoplayer.audio.AudioOutputProvider.FormatConfig)`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.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/exoplayer/audio/AudioTrackAudioOutputProvider.Builder#setAudioTrackBufferSizeProvider(androidx.media3.exoplayer.audio.DefaultAudioSink.AudioTrackBufferSizeProvider)( https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioTrackBufferSizeProvider bufferSizeProvider )` Sets an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioTrackBufferSizeProvider` to compute the buffer size when `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink#configure(androidx.media3.exoplayer.audio.AudioSink.AudioSinkConfig)` is called with `specifiedBufferSize == 0`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder#setAudioTrackBuilderModifier(java.util.function.BiConsumer<android.media.AudioTrack.Builder,androidx.media3.exoplayer.audio.AudioOutputProvider.OutputConfig>)( https://developer.android.com/reference/java/util/function/BiConsumer.html<https://developer.android.com/reference/android/media/AudioTrack.Builder.html, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.OutputConfig> audioTrackBuilderModifier )` Sets a `https://developer.android.com/reference/java/util/function/BiConsumer.html` to modify the `https://developer.android.com/reference/android/media/AudioTrack.Builder.html` before building the `https://developer.android.com/reference/android/media/AudioTrack.html`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.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/exoplayer/audio/AudioTrackAudioOutputProvider.Builder#setMaxPlaybackSpeed(float)(float maxPlaybackSpeed)` Sets the maximum playback speed that an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutput` provided by this instance is going to be configured for. |

## Public constructors

### Builder

```
public Builder(@Nullable Context context)
```

Creates a new builder.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html`. |

## Public methods

### build

```
public AudioTrackAudioOutputProvider build()
```

Builds the `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider`.

### setAudioOffloadSupportProvider

```
@UnstableApi
@CanIgnoreReturnValue
public AudioTrackAudioOutputProvider.Builder setAudioOffloadSupportProvider(
    DefaultAudioSink.AudioOffloadSupportProvider audioOffloadSupportProvider
)
```

Sets an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioOffloadSupportProvider` to provide the provider's offload support capabilities for a given `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.FormatConfig` for calls to `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider#getFormatSupport(androidx.media3.exoplayer.audio.AudioOutputProvider.FormatConfig)`.

The default is an instance of `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioOffloadSupportProvider`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioOffloadSupportProvider audioOffloadSupportProvider` | The `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioOffloadSupportProvider` to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder` | This builder. |

### setAudioTrackBufferSizeProvider

```
@UnstableApi
@CanIgnoreReturnValue
public AudioTrackAudioOutputProvider.Builder setAudioTrackBufferSizeProvider(
    DefaultAudioSink.AudioTrackBufferSizeProvider bufferSizeProvider
)
```

Sets an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioTrackBufferSizeProvider` to compute the buffer size when `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink#configure(androidx.media3.exoplayer.audio.AudioSink.AudioSinkConfig)` is called with `specifiedBufferSize == 0`.

The default value is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioTrackBufferSizeProvider#DEFAULT()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioTrackBufferSizeProvider bufferSizeProvider` | The `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink.AudioTrackBufferSizeProvider` to use. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder` | This builder. |

### setAudioTrackBuilderModifier

```
@CanIgnoreReturnValue
public AudioTrackAudioOutputProvider.Builder setAudioTrackBuilderModifier(
    BiConsumer<AudioTrack.Builder, AudioOutputProvider.OutputConfig> audioTrackBuilderModifier
)
```

Sets a `https://developer.android.com/reference/java/util/function/BiConsumer.html` to modify the `https://developer.android.com/reference/android/media/AudioTrack.Builder.html` before building the `https://developer.android.com/reference/android/media/AudioTrack.html`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/function/BiConsumer.html<https://developer.android.com/reference/android/media/AudioTrack.Builder.html, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.OutputConfig> audioTrackBuilderModifier` | A `https://developer.android.com/reference/java/util/function/BiConsumer.html` that accepts an `https://developer.android.com/reference/android/media/AudioTrack.Builder.html` and an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.OutputConfig`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder` | This builder. |

### setMaxPlaybackSpeed

```
@UnstableApi
@CanIgnoreReturnValue
public AudioTrackAudioOutputProvider.Builder setMaxPlaybackSpeed(float maxPlaybackSpeed)
```

Sets the maximum playback speed that an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutput` provided by this instance is going to be configured for. This is also used to allocate buffers that are big enough to not underrun at the maximum playback speed. This value has no effect if `
useAudioOutputPlaybackParams` is disabled.

The default value is `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DefaultAudioSink#MAX_PLAYBACK_SPEED()`.

| Parameters |
|---|---|
| `float maxPlaybackSpeed` | The maximum playback speed to use. Must be at least `1f`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioTrackAudioOutputProvider.Builder` | This builder. |