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/TrackChangeEvent.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#inhmethods)

# TrackChangeEvent.Builder

*** ** * ** ***


`
public
static
final

class
TrackChangeEvent.Builder
`


`

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


`

`


`

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

<br />

*** ** * ** ***

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

## Summary

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

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#build()() ` Builds the instance. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setAudioSampleRate(int)(int value) ` Sets sample rate. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setBitrate(int)(int value) ` Sets bitrate in bits per second. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setChannelCount(int)(int value) ` Sets channel count. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setCodecName(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets codec name. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setContainerMimeType(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets container MIME type. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setHeight(int)(int value) ` Sets video height. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setLanguage(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets language code. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setLanguageRegion(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets language region code. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.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/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setSampleMimeType(java.lang.String)(https://developer.android.com/reference/java/lang/String value) ` Sets the MIME type of the video/audio/text samples. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setTimeSinceCreatedMillis(long)(long value) ` Sets timestamp since the creation in milliseconds. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setTrackChangeReason(int)(int value) ` Sets track change reason. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setTrackState(int)(int value) ` Sets track state. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setVideoFrameRate(float)(float value) ` Sets video frame rate. |
| ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder` | ` https://developer.android.com/reference/android/media/metrics/TrackChangeEvent.Builder#setWidth(int)(int value) ` Sets video width. |

| ### 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 (int type)
```

Creates a new Builder.

<br />

| Parameters ||
|---|---|
| `type` | `int`: the track type. It must be one of `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_TYPE_AUDIO`, `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_TYPE_VIDEO`, `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_TYPE_TEXT`. Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_TYPE_AUDIO` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_TYPE_VIDEO` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_TYPE_TEXT` |

## Public methods

### build

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

```
public TrackChangeEvent build ()
```

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

<br />

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

### setAudioSampleRate

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

```
public TrackChangeEvent.Builder setAudioSampleRate (int value)
```

Sets sample rate.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the sample rate. -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/TrackChangeEvent.Builder` | This value cannot be `null`. <br /> |

### setBitrate

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

```
public TrackChangeEvent.Builder setBitrate (int value)
```

Sets bitrate in bits per second.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the bitrate in bits per second. -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/TrackChangeEvent.Builder` | This value cannot be `null`. <br /> |

### setChannelCount

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

```
public TrackChangeEvent.Builder setChannelCount (int value)
```

Sets channel count.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the channel 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/TrackChangeEvent.Builder` | This value cannot be `null`. <br /> |

### setCodecName

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

```
public TrackChangeEvent.Builder setCodecName (String value)
```

Sets codec name.

<br />

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

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

### setContainerMimeType

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

```
public TrackChangeEvent.Builder setContainerMimeType (String value)
```

Sets container MIME type.

<br />

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

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

### setHeight

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

```
public TrackChangeEvent.Builder setHeight (int value)
```

Sets video height.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the video height. -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/TrackChangeEvent.Builder` | This value cannot be `null`. <br /> |

### setLanguage

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

```
public TrackChangeEvent.Builder setLanguage (String value)
```

Sets language code.

<br />

| Parameters ||
|---|---|
| `value` | `String`: a two-letter ISO 639-1 language code. This value cannot be `null`. <br /> |

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

### setLanguageRegion

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

```
public TrackChangeEvent.Builder setLanguageRegion (String value)
```

Sets language region code.

<br />

| Parameters ||
|---|---|
| `value` | `String`: an IETF BCP 47 optional language region subtag based on a two-letter country code. This value cannot be `null`. <br /> |

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

### setMetricsBundle

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

```
public TrackChangeEvent.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/TrackChangeEvent.Builder` | This value cannot be `null`. <br /> |

### setSampleMimeType

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

```
public TrackChangeEvent.Builder setSampleMimeType (String value)
```

Sets the MIME type of the video/audio/text samples.

<br />

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

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

### setTimeSinceCreatedMillis

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

```
public TrackChangeEvent.Builder setTimeSinceCreatedMillis (long value)
```

Sets timestamp since the creation in milliseconds.

<br />

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

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

**See also:**

- `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#getTimeSinceCreatedMillis()`

### setTrackChangeReason

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

```
public TrackChangeEvent.Builder setTrackChangeReason (int value)
```

Sets track change reason.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_CHANGE_REASON_UNKNOWN` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_CHANGE_REASON_OTHER` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_CHANGE_REASON_INITIAL` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_CHANGE_REASON_MANUAL` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_CHANGE_REASON_ADAPTIVE` |

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

### setTrackState

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

```
public TrackChangeEvent.Builder setTrackState (int value)
```

Sets track state.

<br />

| Parameters ||
|---|---|
| `value` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_STATE_OFF` - `https://developer.android.com/reference/android/media/metrics/TrackChangeEvent#TRACK_STATE_ON` |

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

### setVideoFrameRate

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

```
public TrackChangeEvent.Builder setVideoFrameRate (float value)
```

Sets video frame rate.

<br />

| Parameters ||
|---|---|
| `value` | `float`: the video frame rate. -1 indicates the value is unknown. Value is between -1.0f and `https://developer.android.com/reference/java/lang/Float#MAX_VALUE` inclusive <br /> |

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

### setWidth

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

```
public TrackChangeEvent.Builder setWidth (int value)
```

Sets video width.

<br />

| Parameters ||
|---|---|
| `value` | `int`: the video width. -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/TrackChangeEvent.Builder` | This value cannot be `null`. <br /> |