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

The proxy classes Android(Embedded)ExternalSurface just provide a simple API surface around AndroidView wrapping SurfaceView and TextureView respectively. However, this prevents accessing the underlying views directly, which is needed for full lifecycle tracking by the Player and to access surface size updates (which are not available when the API is reduced to just `Surface`). Instead of the proxy classes, we can directly use AndroidView from PlayerSurface. This allows to call the proper Player APIs to set SurfaceView or TextureView, so that the Player can keep track of the view lifecycle and update its internal state and size tracking accordingly. Because the player keeps tracks of the lifecycle, none of the callback structure in Android(Embedded)ExternalSurface is needed, nor are the additional setters for options that are all default. PiperOrigin-RevId: 743079058
UI module written using Jetpack Compose
Provides UI-related functionality such as Composable functions and Compose State classes. For example, the Surface for rendering media playback, UI state classes for widgets, buttons, and other interactive components.
Getting the module
The easiest way to use the module is to add it as a gradle dependency:
implementation 'androidx.media3:media3-ui-compose: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.