Textureview获取Surface

use*_*754 6 android exoplayer

我正在使用ExoPlayer库,它需要一个Surface,但我找不到任何方法,它可以检索Textureview的底层Surface.有任何想法吗?

Surfaceview有一个方法:

surfaceView.getHolder().getSurface()
Run Code Online (Sandbox Code Playgroud)

或者TextureView中没有表面?

Bre*_*ntM 12

第一步是使用getSurfaceTexture()成员函数从TextureView获取SurfaceTexture .

SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();
Run Code Online (Sandbox Code Playgroud)

然后从构造函数Surface(SurfaceTexture surfaceTexture)创建Surface对象,该构造函数将接受TextureView对象中的SurfaceTexture.

Surface surface = new Surface(surfaceTexture);
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看此问题报告.它确认通过以我描述的方式构造Surface对象,可以使用带有ExoPlayer的TextureView中的Surface.

  • 我没有使用ExoPlayer库,但您可能需要实现`TextureView.SurfaceTextureListener`以确保表面在您尝试访问之前有效. (2认同)