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