# DrmInitData

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

*** ** * ** ***


```
@UnstableApi
class DrmInitData : Comparator<DrmInitData.SchemeData!>, Parcelable
```

<br />

*** ** * ** ***

Initialization data for one or more DRM schemes.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData : https://developer.android.com/reference/android/os/Parcelable.html` Scheme initialization data. |

| ### Constants |
|---|---|
| `const https://developer.android.com/reference/android/os/Parcelable.Creator.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#CREATOR()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#DrmInitData(androidx.media3.common.DrmInitData.SchemeData...)(schemeDatas: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#DrmInitData(java.util.List<androidx.media3.common.DrmInitData.SchemeData>)(schemeDatas: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#DrmInitData(java.lang.String,androidx.media3.common.DrmInitData.SchemeData...)( schemeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, schemeDatas: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>! )` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#DrmInitData(java.lang.String,java.util.List<androidx.media3.common.DrmInitData.SchemeData>)( schemeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, schemeDatas: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>! )` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#compare(androidx.media3.common.DrmInitData.SchemeData,androidx.media3.common.DrmInitData.SchemeData)(first: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!, second: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#copyWithSchemeType(java.lang.String)(schemeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Returns a copy with the specified protection scheme type. |
| `java-static https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData?` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#createSessionCreationData(androidx.media3.common.DrmInitData,androidx.media3.common.DrmInitData)( manifestData: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData?, mediaData: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData? )` Merges `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData` obtained from a media manifest and a media stream. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#describeContents()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#equals(java.lang.Object)(obj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#get(int)(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Retrieves the `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData` at a given index. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#hashCode()()` |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#merge(androidx.media3.common.DrmInitData)(drmInitData: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!)` Returns an instance containing the `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeDatas()` from both this and `other`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#writeToParcel(android.os.Parcel,int)(dest: https://developer.android.com/reference/android/os/Parcel.html!, flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeDataCount()` Number of `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData`s. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeType()` The protection scheme type, or null if not applicable or unknown. |

### Inherited Constants

From [android.os.Parcelable](https://developer.android.com/reference/android/os/Parcelable.html) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/os/Parcelable.html#CONTENTS_FILE_DESCRIPTOR = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE = 1`

### Inherited functions

From [java.util.Comparator](https://developer.android.com/reference/java/util/Comparator.html) `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T, U : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-comparable/index.html<U!>?> https://developer.android.com/reference/java/util/Comparator.html#comparing(java.util.function.Function&lt;? super T,? extends U&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/Function.html<T!, U!>!)` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T> https://developer.android.com/reference/java/util/Comparator.html#comparingDouble(java.util.function.ToDoubleFunction&lt;? super T&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/ToDoubleFunction.html<T!>!)` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T> https://developer.android.com/reference/java/util/Comparator.html#comparingInt(java.util.function.ToIntFunction&lt;? super T&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/ToIntFunction.html<T!>!)` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T> https://developer.android.com/reference/java/util/Comparator.html#comparingLong(java.util.function.ToLongFunction&lt;? super T&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/ToLongFunction.html<T!>!)` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-comparable/index.html<T!>?> https://developer.android.com/reference/java/util/Comparator.html#naturalOrder()()` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T> https://developer.android.com/reference/java/util/Comparator.html#nullsFirst(java.util.Comparator&lt;? super T&gt;)(comparator: https://developer.android.com/reference/java/util/Comparator.html<T!>!)` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T> https://developer.android.com/reference/java/util/Comparator.html#nullsLast(java.util.Comparator&lt;? super T&gt;)(comparator: https://developer.android.com/reference/java/util/Comparator.html<T!>!)` `java-static https://developer.android.com/reference/java/util/Comparator.html<T!>!` `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-comparable/index.html<T!>?> https://developer.android.com/reference/java/util/Comparator.html#reverseOrder()()` `https://developer.android.com/reference/java/util/Comparator.html<T!>!` `https://developer.android.com/reference/java/util/Comparator.html#reversed()()` `https://developer.android.com/reference/java/util/Comparator.html<T!>!` `https://developer.android.com/reference/java/util/Comparator.html#thenComparing(java.util.Comparator&lt;? super T&gt;)(other: https://developer.android.com/reference/java/util/Comparator.html<T!>!)` `https://developer.android.com/reference/java/util/Comparator.html<T!>!` `https://developer.android.com/reference/java/util/Comparator.html#thenComparingDouble(java.util.function.ToDoubleFunction&lt;? super T&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/ToDoubleFunction.html<T!>!)` `https://developer.android.com/reference/java/util/Comparator.html<T!>!` `https://developer.android.com/reference/java/util/Comparator.html#thenComparingInt(java.util.function.ToIntFunction&lt;? super T&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/ToIntFunction.html<T!>!)` `https://developer.android.com/reference/java/util/Comparator.html<T!>!` `https://developer.android.com/reference/java/util/Comparator.html#thenComparingLong(java.util.function.ToLongFunction&lt;? super T&gt;)(keyExtractor: https://developer.android.com/reference/java/util/function/ToLongFunction.html<T!>!)`

## Constants

### CREATOR

```
const val CREATOR: Parcelable.Creator<DrmInitData!>!
```

## Public constructors

### DrmInitData

```
DrmInitData(schemeDatas: Array<DrmInitData.SchemeData!>!)
```

| Parameters |
|---|---|
| `schemeDatas: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>!` | Scheme initialization data for possibly multiple DRM schemes. |

### DrmInitData

```
DrmInitData(schemeDatas: (Mutable)List<DrmInitData.SchemeData!>!)
```

| Parameters |
|---|---|
| `schemeDatas: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>!` | Scheme initialization data for possibly multiple DRM schemes. |

### DrmInitData

```
DrmInitData(
    schemeType: String?,
    schemeDatas: Array<DrmInitData.SchemeData!>!
)
```

| Parameters |
|---|---|
| `schemeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | See `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeType()`. |
| `schemeDatas: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>!` | Scheme initialization data for possibly multiple DRM schemes. |

### DrmInitData

```
DrmInitData(
    schemeType: String?,
    schemeDatas: (Mutable)List<DrmInitData.SchemeData!>!
)
```

| Parameters |
|---|---|
| `schemeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | See `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeType()`. |
| `schemeDatas: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!>!` | Scheme initialization data for possibly multiple DRM schemes. |

## Public functions

### compare

```
fun compare(first: DrmInitData.SchemeData!, second: DrmInitData.SchemeData!): Int
```

### copyWithSchemeType

```
fun copyWithSchemeType(schemeType: String?): DrmInitData!
```

Returns a copy with the specified protection scheme type.

| Parameters |
|---|---|
| `schemeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | A protection scheme type. May be null. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!` | A copy with the specified protection scheme type. |

### createSessionCreationData

```
java-static fun createSessionCreationData(
    manifestData: DrmInitData?,
    mediaData: DrmInitData?
): DrmInitData?
```

Merges `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData` obtained from a media manifest and a media stream.

The result is generated as follows.

1. Include all `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData`s from `manifestData` where `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData#hasData()` is true.
2. Include all `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData`s in `mediaData` where `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData#hasData()` is true and for which we did not include an entry from the manifest targeting the same UUID.
3. If available, the scheme type from the manifest is used. If not, the scheme type from the media is used.

| Parameters |
|---|---|
| `manifestData: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData?` | DRM session acquisition data obtained from the manifest. |
| `mediaData: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData?` | DRM session acquisition data obtained from the media. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData?` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData` obtained from merging a media manifest and a media stream. |

### describeContents

```
fun describeContents(): Int
```

### equals

```
fun equals(obj: Any?): Boolean
```

### get

```
fun get(index: Int): DrmInitData.SchemeData!
```

Retrieves the `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData` at a given index.

| Parameters |
|---|---|
| `index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the scheme to return. Must not exceed `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeDataCount()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData` at the specified index. |

### hashCode

```
fun hashCode(): Int
```

### merge

```
fun merge(drmInitData: DrmInitData!): DrmInitData!
```

Returns an instance containing the `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeDatas()` from both this and `other`. The `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData#schemeType()` of the instances being merged must either match, or at least one scheme type must be `null`.

| Parameters |
|---|---|
| `drmInitData: https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!` | The instance to merge. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData!` | The merged result. |

### writeToParcel

```
fun writeToParcel(dest: Parcel!, flags: Int): Unit
```

## Public properties

### schemeDataCount

```
val schemeDataCount: Int
```

Number of `https://developer.android.com/reference/kotlin/androidx/media3/common/DrmInitData.SchemeData`s.

### schemeType

```
val schemeType: String?
```

The protection scheme type, or null if not applicable or unknown.