mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00

The method currently has two ways of operating with a complicated contract: 1. outputBuffer == null -> sets a new outputBuffer and starts draining it as far as possible. 2. outputBuffer != null -> continues draining a previous buffer, requires that the input parameter is the same as outputBuffer. This contract can be made cleaner by splitting the logic into (1) setting a new output buffer and (2) draining the output buffer. Only one parameter is needed for each method and there is no requirement to pass in the same argument as before because we already know what we are draining. This also means the caller of the method doesn't have to keep track of the actual outputBuffer, allowing further processing steps in the future that change the drained instance. PiperOrigin-RevId: 663316251
ExoPlayer module
This module provides ExoPlayer
, the Player
implementation for local media
playback on Android.
Getting the module
The easiest way to get the module is to add it as a gradle dependency:
implementation 'androidx.media3:media3-exoplayer: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.