mirror of
https://github.com/samsonjs/media.git
synced 2026-04-01 10:35:48 +00:00
When a renderer is pre-enabled (while another playback is still ongoing), we pass mayRenderStartOfStream=false to Renderer.enable. This ensures we don't show any first frames while the previous media is still playing. Currently, we never tell the renderer when we actually stop playing the previous media so that it could render the start of the stream, because we allow this as soon as the renderer is in STATE_STARTED and we assume that we have to be in STATE_STARTED to make this stream transition. While this assumption is true, there are also cases where we can't start the renderers because they are not ready yet and the video renderer can't become ready because it didn't render its first frame. This effectively blocks playback forever. The most direct way of solving this, is to tell the renderer that playback has transitioned and that it is now allowed to render the start of the stream. This means it can never get blocked as described above. PiperOrigin-RevId: 547727347 |
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle | ||
| proguard-rules.txt | ||
| README.md | ||
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.