# HlsMultivariantPlaylist

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

*** ** * ** ***


```
@UnstableApi
public final class HlsMultivariantPlaylist extends HlsPlaylist
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.media3.exoplayer.hls.playlist.HlsPlaylist](https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist) ||
|   | ↳ | [androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist](https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist) |

*** ** * ** ***

Represents an HLS multivariant playlist.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.ContentSteeringInfo` Content Steering information derived from an #EXT-X-CONTENT-STEERING tag. |
| `public final class https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition` A rendition (i.e. an #EXT-X-MEDIA tag) in a multivariant playlist. |
| `public final class https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Variant` A variant (i.e. an #EXT-X-STREAM-INF tag) in a multivariant playlist. |

| ### Constants |
|---|---|
| `static final https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#EMPTY()` Represents an empty multivariant playlist, from which no attributes can be inherited. |
| `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#GROUP_INDEX_AUDIO() = 1` |
| `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#GROUP_INDEX_SUBTITLE() = 2` |
| `static final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#GROUP_INDEX_VARIANT() = 0` |

| ### Public fields |
|---|---|
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#audios()` The audio renditions declared by the playlist. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#closedCaptions()` The closed caption renditions declared by the playlist. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.ContentSteeringInfo` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#contentSteeringInfo()` Content Steering information derived from #EXT-X-CONTENT-STEERING tag. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/android/net/Uri.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#mediaPlaylistUrls()` All of the media playlist URLs referenced by the playlist. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#muxedAudioFormat()` The format of the audio muxed in the variants. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Format>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#muxedCaptionFormats()` The format of the closed captions declared by the playlist. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#sessionKeyDrmInitData()` DRM initialization data derived from #EXT-X-SESSION-KEY tags. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#subtitles()` The subtitle renditions declared by the playlist. |
| `final https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#variableDefinitions()` Contains variable definitions, as defined by the #EXT-X-DEFINE tag. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Variant>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#variants()` The variants declared by the playlist. |
| `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#videos()` The video renditions declared by the playlist. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#HlsMultivariantPlaylist(java.lang.String,java.util.List<java.lang.String>,java.util.List<androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist.Variant>,java.util.List<androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist.Rendition>,java.util.List<androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist.Rendition>,java.util.List<androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist.Rendition>,java.util.List<androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist.Rendition>,androidx.media3.common.Format,java.util.List<androidx.media3.common.Format>,boolean,java.util.Map<java.lang.String,java.lang.String>,java.util.List<androidx.media3.common.DrmInitData>,androidx.media3.exoplayer.hls.playlist.HlsMultivariantPlaylist.ContentSteeringInfo)( https://developer.android.com/reference/java/lang/String.html baseUri, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> tags, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Variant> variants, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> videos, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> audios, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> subtitles, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> closedCaptions, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format muxedAudioFormat, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Format> muxedCaptionFormats, boolean hasIndependentSegments, https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> variableDefinitions, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData> sessionKeyDrmInitData, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.ContentSteeringInfo contentSteeringInfo )` |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#copy(java.util.List<androidx.media3.common.StreamKey>)(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/StreamKey> streamKeys)` Returns a copy of the manifest including only the streams specified by the given keys. |
| `static https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#createSingleVariantMultivariantPlaylist(java.lang.String)(https://developer.android.com/reference/java/lang/String.html variantUrl)` Creates a playlist with a single variant. |

| ### Inherited fields |
|---|
| From [androidx.media3.exoplayer.hls.playlist.HlsPlaylist](https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist) |---|---| | `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist#baseUri()` The base uri. | | `final boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist#hasIndependentSegments()` Whether the media is formed of independent segments, as defined by the #EXT-X-INDEPENDENT-SEGMENTS tag. | | `final https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist#tags()` The list of tags in the playlist. | |

## Constants

### EMPTY

```
public static final HlsMultivariantPlaylist EMPTY
```

Represents an empty multivariant playlist, from which no attributes can be inherited.

### GROUP_INDEX_AUDIO

```
public static final int GROUP_INDEX_AUDIO = 1
```

### GROUP_INDEX_SUBTITLE

```
public static final int GROUP_INDEX_SUBTITLE = 2
```

### GROUP_INDEX_VARIANT

```
public static final int GROUP_INDEX_VARIANT = 0
```

## Public fields

### audios

```
public final List<HlsMultivariantPlaylist.Rendition> audios
```

The audio renditions declared by the playlist.

### closedCaptions

```
public final List<HlsMultivariantPlaylist.Rendition> closedCaptions
```

The closed caption renditions declared by the playlist.

### contentSteeringInfo

```
public final @Nullable HlsMultivariantPlaylist.ContentSteeringInfo contentSteeringInfo
```

Content Steering information derived from #EXT-X-CONTENT-STEERING tag.

### mediaPlaylistUrls

```
public final List<Uri> mediaPlaylistUrls
```

All of the media playlist URLs referenced by the playlist.

### muxedAudioFormat

```
public final @Nullable Format muxedAudioFormat
```

The format of the audio muxed in the variants. May be null if the playlist does not declare any muxed audio.

### muxedCaptionFormats

```
public final @Nullable List<Format> muxedCaptionFormats
```

The format of the closed captions declared by the playlist. May be empty if the playlist explicitly declares no captions are available, or null if the playlist does not declare any captions information.

### sessionKeyDrmInitData

```
public final List<DrmInitData> sessionKeyDrmInitData
```

DRM initialization data derived from #EXT-X-SESSION-KEY tags.

### subtitles

```
public final List<HlsMultivariantPlaylist.Rendition> subtitles
```

The subtitle renditions declared by the playlist.

### variableDefinitions

```
public final Map<String, String> variableDefinitions
```

Contains variable definitions, as defined by the #EXT-X-DEFINE tag.

### variants

```
public final List<HlsMultivariantPlaylist.Variant> variants
```

The variants declared by the playlist.

### videos

```
public final List<HlsMultivariantPlaylist.Rendition> videos
```

The video renditions declared by the playlist.

## Public constructors

### HlsMultivariantPlaylist

```
public HlsMultivariantPlaylist(
    String baseUri,
    List<String> tags,
    List<HlsMultivariantPlaylist.Variant> variants,
    List<HlsMultivariantPlaylist.Rendition> videos,
    List<HlsMultivariantPlaylist.Rendition> audios,
    List<HlsMultivariantPlaylist.Rendition> subtitles,
    List<HlsMultivariantPlaylist.Rendition> closedCaptions,
    @Nullable Format muxedAudioFormat,
    @Nullable List<Format> muxedCaptionFormats,
    boolean hasIndependentSegments,
    Map<String, String> variableDefinitions,
    List<DrmInitData> sessionKeyDrmInitData,
    @Nullable HlsMultivariantPlaylist.ContentSteeringInfo contentSteeringInfo
)
```

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html baseUri` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist#baseUri()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> tags` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist#tags()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Variant> variants` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#variants()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> videos` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#videos()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> audios` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#audios()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> subtitles` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#subtitles()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.Rendition> closedCaptions` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#closedCaptions()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format muxedAudioFormat` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#muxedAudioFormat()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Format> muxedCaptionFormats` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#muxedCaptionFormats()`. |
| `boolean hasIndependentSegments` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsPlaylist#hasIndependentSegments()`. |
| `https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> variableDefinitions` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#variableDefinitions()`. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData> sessionKeyDrmInitData` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#sessionKeyDrmInitData()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist.ContentSteeringInfo contentSteeringInfo` | See `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist#contentSteeringInfo()`. |

## Public methods

### copy

```
public HlsMultivariantPlaylist copy(List<StreamKey> streamKeys)
```

Returns a copy of the manifest including only the streams specified by the given keys. If the manifest is unchanged then the instance may return itself.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/StreamKey> streamKeys` | A non-empty list of stream keys. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist` | The filtered manifest. |

### createSingleVariantMultivariantPlaylist

```
public static HlsMultivariantPlaylist createSingleVariantMultivariantPlaylist(String variantUrl)
```

Creates a playlist with a single variant.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html variantUrl` | The url of the single variant. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/hls/playlist/HlsMultivariantPlaylist` | A multivariant playlist with a single variant for the provided url. |