Periods that are not the last in the manifest are always ended and non-dynamic periods are also always ended by definition. Also, some periods may not be able to declare their final duration accurately and we need to account for some inaccuracy. This can be done by testing whether no further full segment within the duration can be expected. |
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle | ||
| README.md | ||
ExoPlayer DASH module
Provides support for Dynamic Adaptive Streaming over HTTP (DASH) content in ExoPlayer.
Getting the module
The easiest way to get the module is to add it as a gradle dependency:
implementation 'androidx.media3:media3-exoplayer-dash:1.X.X'
where 1.X.X is the version, which must match the version of the other media
modules being used.
Alternatively, you can clone this GitHub project and depend on the module locally. Instructions for doing this can be found in the top level README.
Using the module
Adding a dependency to this module is all that's required to enable playback of
DASH media items added to ExoPlayer in its default configuration. Internally,
DefaultMediaSourceFactory will automatically detect the presence of the module
and convert a DASH MediaItem into a DashMediaSource for playback.
Similarly, a DownloadManager in its default configuration will use
DefaultDownloaderFactory, which will automatically detect the presence of
the module and build DashDownloader instances to download DASH content.
For advanced playback use cases, applications can build DashMediaSource
instances and pass them directly to the player. For advanced download use cases,
DashDownloader can be used directly.