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

*** ** * ** ***


```
public final class AudioSink.AudioSinkConfig.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig`.

## Summary

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

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig` | `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder#build()()` Builds an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig` instance. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder#setMediaPeriodId(androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` of the playback this audio sink is configured for. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder#setOutputChannelMapping(com.google.common.primitives.ImmutableIntArray)( @https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableIntArray.html outputChannelMapping )` Sets a mapping from input to output channels. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html [setPreferredBufferSizeOverride](https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder#setPreferredBufferSizeOverride(int))(int preferredBufferSizeOverride)` **This method is deprecated.** Use similar setters on lower-level components like `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutput` instead, e.g. by modifying `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.FormatConfig#preferredBufferSize()`. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder#setTimeline(androidx.media3.common.Timeline)(https://developer.android.com/reference/androidx/media3/common/Timeline timeline)` Sets the `https://developer.android.com/reference/androidx/media3/common/Timeline` of the playback this audio sink is configured for. |

## Public constructors

### Builder

```
public Builder(Format format)
```

Creates a new builder.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Format format` | The format of audio data provided in the input buffers. |

## Public methods

### build

```
public AudioSink.AudioSinkConfig build()
```

Builds an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig` instance.

### setMediaPeriodId

```
@CanIgnoreReturnValue
public AudioSink.AudioSinkConfig.Builder setMediaPeriodId(@Nullable MediaSource.MediaPeriodId mediaPeriodId)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` of the playback this audio sink is configured for.

Can be used together with the `https://developer.android.com/reference/androidx/media3/common/Timeline` to identify the concrete item in the playlist.

If the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` is non-null and the provided `https://developer.android.com/reference/androidx/media3/common/Timeline` non-empty, the value must refer to a valid period in the provided `https://developer.android.com/reference/androidx/media3/common/Timeline`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId`, or null to leave it undefined. |

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

### setOutputChannelMapping

```
@CanIgnoreReturnValue
public AudioSink.AudioSinkConfig.Builder setOutputChannelMapping(
    @Nullable ImmutableIntArray outputChannelMapping
)
```

Sets a mapping from input to output channels.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableIntArray.html outputChannelMapping` | A mapping from input to output channels that is applied to this sink's input as a preprocessing step, if handling PCM input. Specify `null` to leave the input unchanged. Otherwise, the element at index `i` specifies index of the input channel to map to output channel `i` when preprocessing input buffers. After the map is applied the audio data will have `outputChannels.length` channels. |

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

### setPreferredBufferSizeOverride

```
@CanIgnoreReturnValue
public AudioSink.AudioSinkConfig.Builder [setPreferredBufferSizeOverride](https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder#setPreferredBufferSizeOverride(int))(int preferredBufferSizeOverride)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use similar setters on lower-level components like `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutput` instead, e.g. by modifying `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutputProvider.FormatConfig#preferredBufferSize()`.

Sets a specific size for the playback buffer in bytes.

This method should not be needed as the buffer size is only applicable to lower-level components like the `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioOutput` and should be set there.

| Parameters |
|---|---|
| `int preferredBufferSizeOverride` | A specific size for the playback buffer in bytes, or 0 to infer a suitable buffer size automatically. |

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

### setTimeline

```
@CanIgnoreReturnValue
public AudioSink.AudioSinkConfig.Builder setTimeline(Timeline timeline)
```

Sets the `https://developer.android.com/reference/androidx/media3/common/Timeline` of the playback this audio sink is configured for.

Can be used together with the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` to identify the concrete item in the playlist.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Timeline timeline` | The `https://developer.android.com/reference/androidx/media3/common/Timeline`. |

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