# 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)

*** ** * ** ***


```
class AudioSink.AudioSinkConfig.Builder
```

<br />

*** ** * ** ***

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

## Summary

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

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

## Public constructors

### Builder

```
Builder(format: Format!)
```

Creates a new builder.

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

## Public functions

### build

```
fun build(): AudioSink.AudioSinkConfig!
```

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

### setMediaPeriodId

```
@CanIgnoreReturnValue
fun setMediaPeriodId(mediaPeriodId: MediaSource.MediaPeriodId?): AudioSink.AudioSinkConfig.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/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/kotlin/androidx/media3/common/Timeline` to identify the concrete item in the playlist.

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

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

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

### setOutputChannelMapping

```
@CanIgnoreReturnValue
fun setOutputChannelMapping(outputChannelMapping: ImmutableIntArray?): AudioSink.AudioSinkConfig.Builder!
```

Sets a mapping from input to output channels.

| Parameters |
|---|---|
| `outputChannelMapping: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/primitives/ImmutableIntArray.html?` | 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/kotlin/androidx/media3/exoplayer/audio/AudioSink.AudioSinkConfig.Builder!` | This builder. |

### setPreferredBufferSizeOverride

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

> [!CAUTION]
> **This function is deprecated.**   
>
> Use similar setters on lower-level components like `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioOutput` instead, e.g. by modifying `https://developer.android.com/reference/kotlin/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/kotlin/androidx/media3/exoplayer/audio/AudioOutput` and should be set there.

| Parameters |
|---|---|
| `preferredBufferSizeOverride: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | A specific size for the playback buffer in bytes, or 0 to infer a suitable buffer size automatically. |

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

### setTimeline

```
@CanIgnoreReturnValue
fun setTimeline(timeline: Timeline!): AudioSink.AudioSinkConfig.Builder!
```

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

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

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

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