# DataSpec.Builder

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

*** ** * ** ***


```
class DataSpec.Builder
```

<br />

*** ** * ** ***

Builds `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec` instances.

Use DataSpec#buildUpon() to obtain a builder representing an existing `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec`.

## Summary

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

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec!` | `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#build()()` Builds a `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec` with the builder's current values. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setCustomData(java.lang.Object)(customData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#customData()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setFlags(int)(@https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#flags()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setHttpBody(byte[])(httpBody: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>?)` Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpBody()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setHttpMethod(int)(@https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.HttpMethod httpMethod: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpMethod()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setHttpRequestHeaders(java.util.Map<java.lang.String,java.lang.String>)(httpRequestHeaders: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpRequestHeaders()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setKey(java.lang.String)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#key()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setLength(long)(length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#length()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setLocation(java.lang.String)(location: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#location()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setPosition(long)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#position()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setUri(java.lang.String)(uriString: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uri()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setUri(android.net.Uri)(uri: https://developer.android.com/reference/android/net/Uri.html!)` Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uri()`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setUriPositionOffset(long)(uriPositionOffset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uriPositionOffset()`. |

## Public constructors

### Builder

```
Builder()
```

Creates a new instance with default values.

## Public functions

### build

```
fun build(): DataSpec!
```

Builds a `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec` with the builder's current values.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec!` | The build `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | If `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder#setUri(java.lang.String)` has not been called. |

### setCustomData

```
@CanIgnoreReturnValue
fun setCustomData(customData: Any?): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#customData()`. The default value is `null`.

| Parameters |
|---|---|
| `customData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#customData()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setFlags

```
@CanIgnoreReturnValue
fun setFlags(@DataSpec.Flags flags: Int): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#flags()`. The default value is 0.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Flags flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#flags()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setHttpBody

```
@CanIgnoreReturnValue
fun setHttpBody(httpBody: ByteArray<Byte>?): DataSpec.Builder!
```

Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpBody()`. The default value is `null`.

| Parameters |
|---|---|
| `httpBody: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>?` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpBody()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setHttpMethod

```
@CanIgnoreReturnValue
fun setHttpMethod(@DataSpec.HttpMethod httpMethod: Int): DataSpec.Builder!
```

Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpMethod()`. The default value is `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#HTTP_METHOD_GET()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.HttpMethod httpMethod: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpMethod()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setHttpRequestHeaders

```
@CanIgnoreReturnValue
fun setHttpRequestHeaders(httpRequestHeaders: (Mutable)Map<String!, String!>!): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpRequestHeaders()`. The default value is an empty map.

Note: `Range`, `Accept-Encoding` and `User-Agent` should not be set with this method, since they are set directly by `https://developer.android.com/reference/kotlin/androidx/media3/datasource/HttpDataSource` implementations. See `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpRequestHeaders()` for more details.

| Parameters |
|---|---|
| `httpRequestHeaders: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#httpRequestHeaders()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setKey

```
@CanIgnoreReturnValue
fun setKey(key: String?): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#key()`. The default value is `null`.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#key()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setLength

```
@CanIgnoreReturnValue
fun setLength(length: Long): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#length()`. The default value is `https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET()`.

| Parameters |
|---|---|
| `length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#length()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setLocation

```
@CanIgnoreReturnValue
fun setLocation(location: String?): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#location()`. The default value is `null`.

| Parameters |
|---|---|
| `location: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#location()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setPosition

```
@CanIgnoreReturnValue
fun setPosition(position: Long): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#position()`. The default value is 0.

| Parameters |
|---|---|
| `position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#position()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setUri

```
@CanIgnoreReturnValue
fun setUri(uriString: String!): DataSpec.Builder!
```

Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uri()`.

| Parameters |
|---|---|
| `uriString: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uri()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setUri

```
@CanIgnoreReturnValue
fun setUri(uri: Uri!): DataSpec.Builder!
```

Sets `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uri()`.

| Parameters |
|---|---|
| `uri: https://developer.android.com/reference/android/net/Uri.html!` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uri()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |

### setUriPositionOffset

```
@CanIgnoreReturnValue
fun setUriPositionOffset(uriPositionOffset: Long): DataSpec.Builder!
```

Sets the `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uriPositionOffset()`. The default value is 0.

| Parameters |
|---|---|
| `uriPositionOffset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec#uriPositionOffset()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec.Builder!` | The builder. |