Textureview get Surface

13k views Asked by At

I am using the ExoPlayer Library, which expects a Surface, however i couldn't find any Method, which retrieves the underlying Surface of the Textureview. Any Ideas?

The Surfaceview has a method for that:

surfaceView.getHolder().getSurface()

Or is there no surface in TextureView?

2

There are 2 answers

2
BrentM On BEST ANSWER

First step is to get the SurfaceTexture from the TextureView using the getSurfaceTexture() member function.

SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();

Then create the Surface object from the constructor Surface(SurfaceTexture surfaceTexture) that will accept the SurfaceTexture from your TextureView object.

Surface surface = new Surface(surfaceTexture);

For more information take a look at this issue report. It confirms that by constructing the Surface object in the manner I described it is possible to use the Surface from a TextureView with ExoPlayer.

0
MarounG On

You can also now in the new versions add an "AnalyticsListener" to the "SimpleExoPlayer" instance, and implement the method "onRenderedFirstFrame" which has the surface as one of its parameters.