
We currently only force the first frame if the frame timestamp is greater than the stream *offset*. This is wrong for two reasons: 1. The timestamp and the offset are not comparable and it should be the stream start position. 2. The check should only be applied at stream transitions where we need to make sure that a new first frame isn't rendered until we passed the transition point. We have to fix both issues together, because fixing just issue (1) causes seeks to before the start position to no longer render the frame (and playback will be stuck). A new test covers this case. We also amend the stream transition test case to actually test what it promises to test and add a test for prerolling samples at the beginning, to ensure the first frame is still renderered. Issue: androidx/media#291 PiperOrigin-RevId: 552858967
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.