Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#inhmethods)

# PlaybackMetrics.Builder

*** ** * ** ***


`
public
static
final

class
PlaybackMetrics.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.metrics.PlaybackMetrics.Builder |

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics`

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#Builder()() ` Creates a new Builder. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#addExperimentId(long)(long value) ` Adds the experiment ID. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#build()() ` Builds the instance. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setAudioUnderrunCount(int)(int value) ` Sets the audio underrun count. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setContentType(int)(int value) ` Sets the content type. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setDrmSessionId(byte[])(byte[] drmSessionId) ` Sets DRM session ID. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setDrmType(int)(int value) ` Sets the DRM type. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setLocalBytesRead(long)(long value) ` Sets the number of local bytes read. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setMediaDurationMillis(long)(long value) ` Sets the media duration in milliseconds. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setMetricsBundle(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle metricsBundle) ` Sets metrics-related information that is not supported by dedicated methods. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setNetworkBytesRead(long)(long value) ` Sets the number of network bytes read. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setNetworkTransferDurationMillis(long)(long value) ` Sets the network transfer duration in milliseconds. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setPlaybackType(int)(int value) ` Sets the playback type. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setPlayerName(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets the player name. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setPlayerVersion(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets the player version. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setStreamSource(int)(int value) ` Sets the stream source type. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setStreamType(int)(int value) ` Sets the stream type. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setVideoFramesDropped(int)(int value) ` Sets the video frames dropped. |
| ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | ` https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder#setVideoFramesPlayed(int)(int value) ` Sets the video frames played. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### Builder

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder ()
```

Creates a new Builder.

<br />

## Public methods

### addExperimentId

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder addExperimentId (long value)
```

Adds the experiment ID.

<br />

| Parameters ||
|---|---|
| `value` | `long` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### build

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics build ()
```

Builds the instance. This builder should not be touched after calling this!

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics` | This value cannot be `null`. <br /> |

### setAudioUnderrunCount

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setAudioUnderrunCount (int value)
```

Sets the audio underrun count.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the audio underrun count. -1 indicates the value is unknown. Value is between -1 and `https://developer.android.com/reference/java/lang/Integer#MAX_VALUE` inclusive <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setContentType

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setContentType (int value)
```

Sets the content type.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#CONTENT_TYPE_UNKNOWN` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#CONTENT_TYPE_MAIN` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#CONTENT_TYPE_AD` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#CONTENT_TYPE_OTHER` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setDrmSessionId

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setDrmSessionId (byte[] drmSessionId)
```

Sets DRM session ID.

<br />

| Parameters ||
|---|---|
| `drmSessionId` | `byte`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setDrmType

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setDrmType (int value)
```

Sets the DRM type.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_NONE` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_OTHER` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_PLAY_READY` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_WIDEVINE_L1` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_WIDEVINE_L3` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_WV_L3_FALLBACK` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#DRM_TYPE_CLEARKEY` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setLocalBytesRead

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setLocalBytesRead (long value)
```

Sets the number of local bytes read.

<br />

| Parameters ||
|---|---|
| `value` | `long`: the number of local bytes read. -1 indicates the value is unknown. Value is -1 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setMediaDurationMillis

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setMediaDurationMillis (long value)
```

Sets the media duration in milliseconds.

<br />

| Parameters ||
|---|---|
| `value` | `long`: the media duration in milliseconds. -1 indicates the value is unknown. Value is -1 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#getMediaDurationMillis()`

### setMetricsBundle

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setMetricsBundle (Bundle metricsBundle)
```

Sets metrics-related information that is not supported by dedicated
methods.

It is intended to be used for backwards compatibility by the
metrics infrastructure.

<br />

| Parameters ||
|---|---|
| `metricsBundle` | `Bundle`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setNetworkBytesRead

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setNetworkBytesRead (long value)
```

Sets the number of network bytes read.

<br />

| Parameters ||
|---|---|
| `value` | `long`: the number of network bytes read. -1 indicates the value is unknown. Value is -1 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setNetworkTransferDurationMillis

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setNetworkTransferDurationMillis (long value)
```

Sets the network transfer duration in milliseconds.

<br />

| Parameters ||
|---|---|
| `value` | `long`: the network transfer duration in milliseconds. -1 indicates the value is unknown. Value is -1 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#getNetworkTransferDurationMillis()`

### setPlaybackType

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setPlaybackType (int value)
```

Sets the playback type.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#PLAYBACK_TYPE_UNKNOWN` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#PLAYBACK_TYPE_VOD` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#PLAYBACK_TYPE_LIVE` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#PLAYBACK_TYPE_OTHER` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setPlayerName

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setPlayerName (String value)
```

Sets the player name.

<br />

| Parameters ||
|---|---|
| `value` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setPlayerVersion

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setPlayerVersion (String value)
```

Sets the player version.

<br />

| Parameters ||
|---|---|
| `value` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setStreamSource

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setStreamSource (int value)
```

Sets the stream source type.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_SOURCE_UNKNOWN` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_SOURCE_NETWORK` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_SOURCE_DEVICE` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_SOURCE_MIXED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setStreamType

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setStreamType (int value)
```

Sets the stream type.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_TYPE_UNKNOWN` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_TYPE_OTHER` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_TYPE_PROGRESSIVE` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_TYPE_DASH` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_TYPE_HLS` - `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics#STREAM_TYPE_SS` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setVideoFramesDropped

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setVideoFramesDropped (int value)
```

Sets the video frames dropped.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the video frames dropped. -1 indicates the value is unknown. Value is between -1 and `https://developer.android.com/reference/java/lang/Integer#MAX_VALUE` inclusive <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |

### setVideoFramesPlayed

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public PlaybackMetrics.Builder setVideoFramesPlayed (int value)
```

Sets the video frames played.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the video frames played. -1 indicates the value is unknown. Value is between -1 and `https://developer.android.com/reference/java/lang/Integer#MAX_VALUE` inclusive <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/metrics/PlaybackMetrics.Builder` | This value cannot be `null`. <br /> |