
AudioTrack.setOffloadEndOfStream should be called after a track has been buffered. Additionally, the AudioTrack must be playing. It has been observed that for very short media (<1s), the AudioTrack might not have started immediately after the read that buffered the audio. In such a situation, calling AudioTrack.setOffloadEndOfStream throws and playback fails. Avoid this failure by checking that the AudioTrack is playing before calling setOffloadEndOfStream. This means that very short gapless media will not be gapless, this was deemed acceptable given that such very short media should be very rare in offload. PiperOrigin-RevId: 450431146
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.